【问题标题】:SQL SERVER CASE STATEMENT CLARIFICATIONSQL SERVER 案例声明说明
【发布时间】:2010-08-19 09:23:19
【问题描述】:

我必须执行一个语句,例如(我需要和关键字以及 when )。

  select 
          'Is Allowed'= case A.Column
                  when 
                     A.Column='XXXX' and Isnull(A.AnotherColumn,'')<>'' then 'Yes'
                  else
                    'No' end from TableName

我遇到语法错误,如何在不影响条件的情况下重写它。

【问题讨论】:

    标签: asp.net sql sql-server-2005


    【解决方案1】:

    试试:

    select case when A.Column='XXXX' and Isnull(A.AnotherColumn,'')<>'' then 'Yes'
           else 'No' end as 'Is Allowed' 
    from TableName
    

    【讨论】:

      【解决方案2】:
      SELECT
          CASE A.Column
              WHEN 'Is Allowed THEN 'First'
              WHEN 2 THEN 'Second'
              WHEN 3 THEN 'Third'
              ELSE 'Other'
          END
      

      是制作 CASE 的一般方式(这是您的问题)。但是,您的查询/逻辑看起来有点复杂。更详细的答案/查询是可能的,但可能会使用更多的语句/嵌套 CASE。

      【讨论】:

        【解决方案3】:

        仔细看看CASE (Transact-SQL)

        SELECT  CASE
                    WHEN some boolean expression
                        THEN value
                    ELSE default value
                END
        

        或

        SELECT  CASE value to check
                    WHEN vlue to check agains
                        THEN value
                    ELSE default value
                END
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-13
          相关资源
          最近更新 更多