我有一个addrLines
字段格式为[Address] [City], [State] [Zip]
,另一个字段只有[city]
数据,我试图从{[Address]
部分中提取addrLines
部分1}}字段。但是此查询返回无效长度参数错误。
SELECT LEFT(addrLines,(CHARINDEX(',',addrLines)-LEN(city)))
FROM MyTable
有人能建议我做错了什么吗?谢谢!
答案 0 :(得分:2)
这可能意味着您在addrLines
中有一个条目,其中没有逗号或LEN(city)
大于CHARINDEX(',',addrLines)
。在其中任何一种情况下,CHARINDEX(',',addrLines)-LEN(city)
函数都可能无法使用LEFT
的负数。
答案 1 :(得分:0)
试试这个:
SELECT LEFT(addrLines,(CHARINDEX(',',addrLines + ',')-LEN(city)))
FROM MyTable
答案 2 :(得分:0)
怎么样:
SELECT LEFT(addrLines,(CHARINDEX(city + ',',addrLines)-1))
FROM MyTable