如何:列表中列的子字符串

时间:2014-09-30 01:59:33

标签: sql sql-server substring

所有。我有一个SQL Server表,其中一列名为" Name"。如果"名称"我想查询行。减去列表中的最后一个字符。 这是我的SQL查询,但它告诉我错误:传递给LEFT或SUBSTRING函数的长度参数无效。

select * from MyTable where substring(Name, 1, len(Name) - 1) in ('ABC', 'DEF')

3 个答案:

答案 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)将抛出错误。