我有一个名为Word
的表,主键是:
[WordId] VARCHAR (20) NOT NULL,
我想要做的是在存储过程中创建一个select,它将返回此表中WordId
的第一个字符位于AE或FK之间的所有行或基于两个字符的其他范围我进入存储过程。
有人可以就如何做到这一点给我建议吗?
答案 0 :(得分:4)
LIKE模式语法支持范围,因此您只需使用
即可 WHERE WordId LIKE '[A-E]%'
或稍微动态的版本。
DECLARE @Start char(1) = 'A', @End char(1) = 'E';
IF @Start > @End
RAISERROR('Start must be before or equal to end',16,1);
DECLARE @Pattern VARCHAR(10) = '[' + @Start + '-' + @End + ']%';
SELECT Foo
FROM Bar
WHERE WordId LIKE @Pattern
答案 1 :(得分:1)
SELECT WordId FROM Word WHERE LEFT(WordId,1) BETWEEN 'A' AND 'E'