一张表:
我的Sql语句:select left(long,charindex('',Long)-1) from Site 会报错,
错误信息是:传递给 LEFT 或 SUBSTRING 函数的长度参数无效。
如果我把Sql语句这样写加了一个where条件,即:
select left(long,charindex('',Long)-1) from Site where Long is not null
仍然报上面的错误信息:传递给 LEFT 或 SUBSTRING 函数的长度参数无效。
而如果where条件变为:Id=4就不会报错,即:select left(long,charindex('',Long)-1) from Site where id=4
我的目的是得到这样的数据:
怎么办呢?希望各位帮帮忙,谢谢!
两个问题:
1. CHARINDEX应该用空格而不是空字符串
2. 没有判断字段Long中不包含空格的情况
稍微改一下就好了
select left(long,charindex(' ',Long)-1) from Site where charindex(' ',Long)>0
谢谢,非常感谢,出现了我想要的结果了!
在使用 LEFT 或 SUBSTRING 之前,为何不尝试一下
SELECT CHARINDEX(' ', Long)-1 FROM Site
可是我想要的结果是122、119、198、123这样的数据啊!
醉了,这个错误提示太不友好了,我用charindex(XX,XX)-1,报错了,我没考虑到它是遍历的,有一个不符合搜索返回为0,之后-1将-1传给了left的第二个参数然后就报这个错了...吸取教训