我有一个像这样的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)
。
IDNumber
是nvarchar
。我尝试使用LEN(IDNumber)
,但徒劳无功。
我不知道错误是什么!
答案 0 :(得分:3)
重写您的查询:
CASE Column
当您编写{{1}}时,您必须将其与直接值进行比较,而不是与表达式进行比较。
答案 1 :(得分:0)
如果你有case变量,那么你需要为when部分提供值,而不是条件