【发布时间】:2016-10-05 21:14:19
【问题描述】:
我有一个这样的 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
执行代码在WHEN (DATALENGTH(IDNumber)>7) 行抛出错误Incorrect syntax near '>'.。
IDNumber 是 nvarchar。我尝试使用LEN(IDNumber),但徒劳无功。
我不知道错误是什么!
【问题讨论】:
-
在 CASE 之后立即删除 IDNumber。此外,(DATALENGTH....) 周围不需要括号,但它们不会伤害任何东西。
标签: sql-server