是否有一个SQL函数可用于返回主键的行范围?

时间:2016-04-29 19:39:46

标签: sql-server

我有一个名为Word的表,主键是:

 [WordId]       VARCHAR (20) NOT NULL,

我想要做的是在存储过程中创建一个select,它将返回此表中WordId的第一个字符位于AE或FK之间的所有行或基于两个字符的其他范围我进入存储过程。

有人可以就如何做到这一点给我建议吗?

2 个答案:

答案 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'