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
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.