SQL报错:向substring函数传递了无效的LENGTH参数.具体SQL语句和数据请看内容

jie_c 2003-08-27 03:10:39
SELECT *
FROM fb_frame_arch_copy
WHERE (PATINDEX('%.%', SUBSTRING(q_type_no, LEN(cata) + 2, CONVERT(int,
LEN(RTRIM(q_type_no)) - LEN(cata) - 1))) = 0) AND (cata = '2')
结构如下:
q_type_no char,20
q_type char,20
cata char,5
数据如下:
10.1 用户表 10
10.2 部门表 10
12 简报 12
15 每周工作安排 15
2.1 收文单 2
2.1.1 待 办 2
...全文
178 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jie_c 2003-08-27
  • 打赏
  • 举报
回复
试了一下csqiu(csqiu)是对的,LEN(cata) -Len(q_type_no)>2不对的话就报错
jie_c 2003-08-27
  • 打赏
  • 举报
回复
SUBSTRING(q_type_no, LEN(cata) + 2,...)无意义的话,也会有结果""的吧
csqiu 2003-08-27
  • 打赏
  • 举报
回复
可能其中有项不符合下列关系:
LEN(cata) -Len(q_type_no)>2
使 SUBSTRING(q_type_no, LEN(cata) + 2,...)变的无意义。

jie_c 2003-08-27
  • 打赏
  • 举报
回复
字段肯定不为空,是不是SUBSTRING, CONVERT对参数有什么限制
csqiu 2003-08-27
  • 打赏
  • 举报
回复
与字段空值无关
csqiu 2003-08-27
  • 打赏
  • 举报
回复

LEN(cata) -Len(q_type_no)>2
txlicenhe 2003-08-27
  • 打赏
  • 举报
回复
可能是字段为空 null
txlicenhe 2003-08-27
  • 打赏
  • 举报
回复
可能是字段为空 null
sdhdy 2003-08-27
  • 打赏
  • 举报
回复
try:
SELECT * FROM fb_frame_arch_copy
WHERE PATINDEX('%.%', SUBSTRING(q_type_no, LEN(cata) + 2, len(q_type_no))) = 0 AND (cata = '2')
CrazyFor 2003-08-27
  • 打赏
  • 举报
回复
字段中有没有空值,空值时会报这样的错误的.

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧