2011-10-17 3 views
5

組み込みの回避策があり、文字「IsAlpha」があるかどうかを確認できますか?SQLサーバー:IsCharAlpha


私はそれが与えられた範囲A-Zではないアルファベット文字を無視除き周り

IF PATINDEX('[a-zA-Z]', @c) > 0 
BEGIN 
    --It is alpha 
END 

を回転させるの提案の多くを参照してください。

+1

何アルファ文字は、Zの外側にありますか?あなたはウムラウトなどでuを意味しますか?パターンマッチにアルファとしてカウントしたい文字を簡単に追加することができます。異なる照合には異なるソート順があるため、範囲の使用は照合に依存します。組み込みのものは何もありません。自分で定義する必要があります。 –

+1

"â"のような文字は除外されていますか? –

答えて

4

照合は、SŠに等しいかどうかなど、アクセントと発音区別記号の評価方法を制御します。

注以下の結果...第SELECT戻り2試合、第二は、1つのマッチ戻り値:

DECLARE @testTable TABLE (testValue nvarchar(50)) 

insert into @testTable (testValue) values ('Š') 
insert into @testTable (testValue) values ('S') 
insert into @testTable (testValue) values ('4') 

SELECT 'IsAlpha', testValue 
FROM @testTable 
WHERE PATINDEX('[a-zA-Z]', testValue COLLATE Latin1_General_CS_AS) > 0 

SELECT 'IsAlpha', testValue 
FROM @testTable 
WHERE PATINDEX('[a-zA-Z]', testValue COLLATE LATIN1_GENERAL_BIN) > 0 

You can find a list of collations within SQL Server 2008 and a brief descripition here.

+0

トリッキー!受け入れられました。 –