【问题标题】:Multiple Case Statements return Different Columns多个案例语句返回不同的列
【发布时间】:2014-08-25 18:33:38
【问题描述】:

问题:我正在做多个案例陈述,但它仅作为一列返回。我想要返回多个列。

当前代码

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]

我想看到的是多列。如果满足条件,则值 R 将放置在 [第一周] 或 [当前周] 列中。

谢谢

【问题讨论】:

  • 你真的不应该将你的日期变量声明为NVarchar。将它们保留为 DateDateTime

标签: sql tsql select case multiple-columns


【解决方案1】:

您需要执行两个不同的 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]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 2015-06-21
    • 2021-03-24
    • 1970-01-01
    相关资源
    最近更新 更多