私はこのようなSQL Serverの手順があります。実行にメッセージ102、レベル15、状態1つの近くに無効な構文「>」
//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 ....)が、何も傷つけていない。 – scsimon