Sql 多个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

问题:我正在做多个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(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