2016-04-29 8 views
2

私は主キーがどこにあるテーブルはWordと呼ばれる持っている:主キーの行の範囲を返すために使用できるSQL関数はありますか?

[WordId]  VARCHAR (20) NOT NULL, 

私がやりたい何かすると、この表の最初の文字からすべての行を返しますストアド・プロシージャ内で選択を作成することですWordIdは、AEまたはFKの間か、または2つの文字に基づく他の範囲の間にあります。これはストアドプロシージャに渡されます。

どうすればいいですか?あなただけ

WHERE WordId LIKE '[A-E]%' 

またはわずかによりダイナミックなバージョンを使用することができるように

答えて

4

LIKEパターン構文は範囲をサポートしています。非常に高速な答えを

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 
+0

感謝。私はこれを格納されたprocに入れて、下位と上位の文字を渡したいと思っています。それでA-EやF-Kなどになるかもしれません。 – Alan2

+1

はい、連結によってパターンを作成するだけです。 –

1
SELECT WordId FROM Word WHERE LEFT(WordId,1) BETWEEN 'A' AND 'E' 
+3

これは受け入れられません。 –

関連する問題