将位(1/0或真/假)转换为是/否时,CASE附近出错

时间:2014-07-16 15:24:17

标签: c# sql sql-server

在C#中执行此操作,但在SQL Server中对其进行测试,直到它正常工作

这是我的代码,对列名称(隐私)进行了一些编辑,但要点就在那里,我在案例附近收到错误。

每个包含产品的列最终都会更改为是/否

SELECT  c.customer_name ,
        c.addr_line_1 ,
        c.addr_line_2 ,
        c.city ,
        c.state ,
        c.zip ,
        ci.title ,
        ci.f_name ,
        ci.l_name ,
        ci.email ,
        ci.phone ,
        c.prod1 
        CASE WHEN prod1 = 1 THEN 'Yes'
             ELSE 'No'
        END ,
        c.prod2 ,
        c.prod3 ,
        c.prod4 ,
        c.prod5 ,
        c.prod6
FROM    Customer c
        INNER JOIN ContactInfo ci ON c.customer_id = ci.customer_id
WHERE   ci.title = 'IT'
        AND c.prod1 = 1

在关键字' case'附近获取'错误的语法作为错误,抱歉

1 个答案:

答案 0 :(得分:2)

问题就在case之前。您使用的语法错误。

ci.phone, c.prod1 case when prod1 = 1 then 'Yes' else 'No' end,
          ^^^^^^^^

应该是:

ci.phone, case when prod1 = 1 then 'Yes' else 'No' end as prod1,

案例输出的列名应在CASE语句的末尾指定,而不是之前。

您可能会看到:CASE (Transact-SQL)