使用CASE表达式的存储过程中的语法错误

时间:2013-10-29 13:12:41

标签: sql sql-server syntax

CASE
   WHEN authorizedID = dbo.CUSTOMER_TABLE.authorizedID 
     THEN authorizedID 
     ELSE NULL 
END AS authorizedID,

我想将authorizedID与不同的表格列dbo.CUSTOMER_TABLE.authorizedID匹配。

如果authorizedID等于dbo.CUSTOMER_TABLE.authorizedID,那么我想获得authorizedID else null

但是我收到dbo.CUSTOMER_TABLE.authorizedID语法错误:

  

多部分标识符dbo.CUSTOMER_TABLE.authorizedID不能   约束

我在编写存储过程时错过了什么?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

在您的情况下,代码必须如下:

CASE
   WHEN authorizedID in (select distinct authorizedID from dbo.CUSTOMER_TABLE)
     THEN authorizedID 
     ELSE NULL 
END AS authorizedID

否则,您可以使用此表(dbo.CUSTOMER_TABLE)进行左连接,然后定义 CASE 条件。在这种情况下,性能会好得多。