【问题标题】:How to: substring of a column in a list如何:列表中列的子字符串
【发布时间】:2014-09-30 01:59:33
【问题描述】:
所有。我有一个 SQL Server 表,其中有一列名为“名称”。如果“名称”减去最后一个字符在列表中,我想查询行。
这是我的 SQL 查询,但它告诉我错误:传递给 LEFT 或 SUBSTRING 函数的长度参数无效。
select * from MyTable where substring(Name, 1, len(Name) - 1) in ('ABC', 'DEF')
【问题讨论】:
标签:
sql
sql-server
substring
【解决方案1】:
做这样的事情怎么样?
select t.*
from mytable t
where name like 'ABC_' or name like 'DEF_';
【解决方案2】:
你应该先检查你的“名字”的长度,如果名字是空的,substring(Name, 1, len(Name) - 1) 会报错。
【解决方案3】:
我找到了根本原因,因为“Name”列的某些值是空的,所以len(Name)在执行过程中会抛出错误。