消息102,级别15,状态1'>'附近的语法不正确

时间:2016-10-05 12:58:07

标签: sql-server

我有一个像这样的SQL Server程序:

//Beginning of procedure 
   SELECT 
          CASE IDNumber
                 WHEN (DATALENGTH(IDNumber)>7) 
                  THEN SUBSTRING(IDNumber,0,6)
                 WHEN (DATALENGTH(IDNumber) < 7)
                  THEN CONCAT((REPLICATE(0,7-LEN(IDNumber)),IDNumber)
          END AS NID

//Rest of the procedure here

执行代码会在行Incorrect syntax near '>'.上抛出错误WHEN (DATALENGTH(IDNumber)>7)

IDNumbernvarchar。我尝试使用LEN(IDNumber),但徒劳无功。 我不知道错误是什么!

2 个答案:

答案 0 :(得分:3)

重写您的查询:

CASE Column

当您编写{{1}}时,您必须将其与直接值进行比较,而不是与表达式进行比较。

答案 1 :(得分:0)

如果你有case变量,那么你需要为when部分提供值,而不是条件