我已经看到其中一些问题,但还没有发现一个有帮助的问题!!我正在尝试仅选择邮政编码的第一部分,实际上忽略了空格之后的所有内容。我正在使用的代码是

SUBSTRING(PostCode, 1 , CHARINDEX(' ', PostCode ) -1)

但是,我正在将无效长度参数传递给LEFT或SUBSTRING函数!没有空值或空格,但有一些只有第一部分。这是导致错误的原因吗?如果是,怎么办?

最佳答案

仅当PostCode缺少空格时才会发生这种情况。
您可以添加条件,以便在找不到空格的情况下检索所有PostCode,如下所示

select SUBSTRING(PostCode, 1 ,
case when  CHARINDEX(' ', PostCode ) = 0 then LEN(PostCode)
else CHARINDEX(' ', PostCode) -1 end)

关于sql-server-2008 - 无效的长度参数传递给LEFT或SUBSTRING函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17368062/

10-13 07:27