所有。我有一个SQL Server表,其中一列名为" Name"。如果"名称"我想查询行。减去列表中的最后一个字符。 这是我的SQL查询,但它告诉我错误:传递给LEFT或SUBSTRING函数的长度参数无效。
select * from MyTable where substring(Name, 1, len(Name) - 1) in ('ABC', 'DEF')
答案 0 :(得分:3)
做这样的事情怎么样?
select t.*
from mytable t
where name like 'ABC_' or name like 'DEF_';
答案 1 :(得分:1)
我找到了根本原因,因为" Name"的一些价值。 column为空,因此len(Name)将在执行期间抛出错误。
答案 2 :(得分:1)
首先应检查“名称”的长度,如果名称为空,则子串(名称,1,len(名称) - 1)将抛出错误。