Sql 多个Case语句返回不同的列
问题:我正在做多个case语句,但是它只返回一列。我想返回多个列 现行代码Sql 多个Case语句返回不同的列,sql,tsql,select,case,multiple-columns,Sql,Tsql,Select,Case,Multiple Columns,问题:我正在做多个case语句,但是它只返回一列。我想返回多个列 现行代码 declare @currentweek as nvarchar(10) declare @1stweek as nvarchar(10) declare @2ndweek as nvarchar(10) set @currentweek= convert(varchar(10),dateadd(ww,0,GETDATE()),110) set @1stweek= convert(varchar(10),dateadd
declare @currentweek as nvarchar(10)
declare @1stweek as nvarchar(10)
declare @2ndweek as nvarchar(10)
set @currentweek= convert(varchar(10),dateadd(ww,0,GETDATE()),110)
set @1stweek= convert(varchar(10),dateadd(ww,1,GETDATE()),110)
select
case
when [date] < @currentweek then 'R'
when [date] > @currentweek and [date]<@1stweek then 'R'
else null
end [current week],[first week]
将@currentweek声明为nvarchar(10)
宣布@1stweek为nvarchar(10)
宣布@2ndweek为nvarchar(10)
set@currentweek=convert(varchar(10),dateadd(ww,0,GETDATE()),110)
set@1stweek=convert(varchar(10),dateadd(ww,1,GETDATE()),110)
选择
案例
当[日期]<@currentweek时,则为'R'
当[date]>@currentweek和[date]时,您需要执行两个不同的Case
语句-每列一个:
select case when [date] < @currentweek then 'R'
else null
end as [current week],
case when [date] > @currentweek
and [date] < @1stweek then 'R'
else null
end as [first week]
在[date]时选择case<@currentweek,然后选择'R'
否则无效
结束为[本周],
[日期]>@currentweek时的情况
和[日期]<@1stweek然后是'R'
否则无效
截至[第一周]
您确实不应该将日期变量声明为NVarchar
。将它们保留为Date
或DateTime
。