SQL代码读取nvarchar可变长度

时间:2016-11-16 19:14:51

标签: sql-server-2008

我遇到的代码序列无法读取变量的NVARCHAR长度(它们是条形码字符串)。我们有两个不同的条形码,我设置的库存系统只测量原始的格式(有7个字符)。新条形码有9个字符。我需要通过每个条形码输入运行一个循环值,因此我如何设置这一行脚本。

我原本以为DATALENGTH或LEN函数就足够了,但它似乎只是将变量测量为整数,而不是字符串中的7个字符。如果任何人有任何关于如何操作我的代码序列的输入或者将测量变量nvarchar长度的函数,那么它将非常值得赞赏!

CASE WHEN @BarcodeID = LEN(7) 

THEN UPPER(LEFT(@BarcodeID,2))+CONVERT(nvarchar,RIGHT(@BarcodeID,5)+@LoopValue-1) 
ELSE UPPER(LEFT(@BarcodeID,3))+CONVERT(nvarchar,RIGHT(@BarcodeID,6)+@LoopValue-1) END

再一次,开头的LEN(7)功能似乎是我的问题。

1 个答案:

答案 0 :(得分:2)

也许您正在尝试做的事实上是

CASE WHEN LEN(@BarcodeID) = 7

通过使用@BarcodeID = LEN(7),您基本上会测试@BarcodeID变量是否等于1,因为LEN()函数,"Returns the number of characters of the specified string expression."它隐式地将7转换为1 -character string。