【问题标题】:SQL CASE StatementSQL CASE 语句
【发布时间】:2011-04-04 13:49:31
【问题描述】:

我的数据库表 PE 和 PER 中有两个字段(BIT 数据类型),我需要编写一个 sql case 语句来执行以下任务。

当 PER=0 时打印“不需要” 当 PER=1 时检查 PE=0 则打印 'Not Completed' 当 PE=1 打印 'Completed'

以下是我尝试过但不起作用的查询

CASE pc.PER WHEN '0' THEN 'Not Required'
                                    WHEN '1' THEN (CASE pc.PE WHEN '0' THEN 'Not Completed'
                       WHEN '1' THEN 'Completed') end as ab 

【问题讨论】:

  • 您是否在FROM 子句中添加了所有需要的表?

标签: sql sql-server case


【解决方案1】:

我认为写成这样可能更容易:

CASE
    WHEN pc.PER = '0' THEN 'Not Required'
    WHEN pc.PER = '1' AND pc.PE = '0' THEN 'Not Completed'
    ELSE 'Completed'
END

或者,您必须在查询中的... WHEN '1' THEN 'Completed' 之后添加END

CASE pc.PER WHEN '0' THEN 'Not Required'
            WHEN '1' THEN (CASE pc.PE WHEN '0' THEN 'Not Completed'
                                      WHEN '1' THEN 'Completed'
                           END)
END AS ab 

【讨论】:

    【解决方案2】:

    你错过了一个结局。

    CASE pc.PER 
        WHEN 0 THEN 'Not Required'
        WHEN 1 THEN 
            CASE pc.PE 
                WHEN 0 THEN 'Not Completed'
                WHEN 1 THEN 'Completed'
            END
    END as ab 
    

    【讨论】:

      【解决方案3】:

      请尝试以下语句:

      CASE WHEN pc.PER =0 THEN 'Not Required'  
           WHEN pc.PER =1 THEN 
               CASE   WHEN pc.PE = 0 THEN 'Not Completed'
                      WHEN pc.PE = 1 THEN 'Completed' 
           End 
      End as ab
      

      【讨论】:

        猜你喜欢
        • 2022-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-05
        • 1970-01-01
        • 1970-01-01
        • 2011-03-12
        相关资源
        最近更新 更多