PDA

View Full Version : ادغام دو سطر



Iran58
یک شنبه 16 اسفند 1394, 10:02 صبح
سلام
فرض کنیم

declare @x int=1;
declare @y int=null;
declare @x1 int=null;
declare @y1 int=2;
select @x as x,@y as y
union
select @x1 as x,@y1 as y


خروجی بصورت زیر است
x y
1null
2 null
من می خواهم اینها در یک سطر نمایش داده بشوند نه دوسطر زیر هم چکار باید کنم
x y
2 1
نه در دو سطر نه جمع وجود دارد و نه عملیاتی دیگر فقط حرف با داده null وجود دارد

parsdarab
دوشنبه 17 اسفند 1394, 09:00 صبح
سلام
با استفاده از کد زیر خروجی مورد نظر داده می شود

declare @x int=1;
declare @y int=null;
declare @x1 int=null;
declare @y1 int=2;


declare @Tbl1 table(intx int, inty int)


insert into @Tbl1
select * from
(select @x as x,@y as y) a
union
select b.x,b.y from
(select @x1 as x,@y1 as y) b


select SUM(intx),SUM(inty) from @Tbl1

Iran58
دوشنبه 17 اسفند 1394, 09:23 صبح
باسلام
اگر داده ها بصورت زیر باشد چکار باید کرد

declare @x varchar(10)='b';
declare @y varchar(10)=null;
declare @x1 varchar(10)=null;
declare @y1 varchar(10)='a';
select @x as x,@y as y
union
select @x1 as x,@y1 as y

داده حروفی باشند

parsdarab
دوشنبه 17 اسفند 1394, 09:49 صبح
میتونی از تابع max استفاده کنی که روی nvarchar جواب میده

declare @x nvarchar(10)='a';
declare @y nvarchar(10)=null;
declare @x1 nvarchar(10)=null;
declare @y1 nvarchar(10)='b';


declare @Tbl1 table(intx nvarchar(10), inty nvarchar(10))


insert into @Tbl1
select * from
(select @x as x,@y as y) a
union
select b.x,b.y from
(select @x1 as x,@y1 as y) b


select max(intx),max(inty) from @Tbl1