首页 新闻 搜索 专区 学院

传递给 LEFT 或 SUBSTRING 函数的长度参数无效,如何解决

0
悬赏园豆:10 [已解决问题] 解决于 2015-07-16 10:20

一张表:

我的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

我的目的是得到这样的数据:

怎么办呢?希望各位帮帮忙,谢谢!

大丽丽Yeah!的主页 大丽丽Yeah! | 初学一级 | 园豆:145
提问于:2015-07-15 16:10
< >
分享
最佳答案
0

两个问题:

1. CHARINDEX应该用空格而不是空字符串

2. 没有判断字段Long中不包含空格的情况

稍微改一下就好了

select  left(long,charindex(' ',Long)-1) from Site where charindex(' ',Long)>0

收获园豆:8
小白菜T | 小虾三级 |园豆:564 | 2015-07-15 17:49

谢谢,非常感谢,出现了我想要的结果了!

大丽丽Yeah! | 园豆:145 (初学一级) | 2015-07-16 10:17
其他回答(2)
0

在使用 LEFT 或 SUBSTRING 之前,为何不尝试一下

SELECT CHARINDEX(' ', Long)-1 FROM Site
收获园豆:2
飞扬的尘埃 | 园豆:1318 (小虾三级) | 2015-07-15 16:19

可是我想要的结果是122、119、198、123这样的数据啊!

支持(0) 反对(0) 大丽丽Yeah! | 园豆:145 (初学一级) | 2015-07-16 10:18
0

醉了,这个错误提示太不友好了,我用charindex(XX,XX)-1,报错了,我没考虑到它是遍历的,有一个不符合搜索返回为0,之后-1将-1传给了left的第二个参数然后就报这个错了...吸取教训

谁抢我名字 | 园豆:202 (菜鸟二级) | 2021-03-11 09:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册