是否有内置或变通方法来确定字符“IsAlpha”?

我看到很多围绕的建议

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

除非忽略了不在给定范围A-Z中的字母字符。

最佳答案

排序规则控制着重音符号和变音符号的评估方式,例如S是否等于Š

请注意以下结果...第一个SELECT返回2个匹配项,第二个ojit_code仅返回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.

10-06 05:16