Sql server 语句第一个字符与字母范围匹配时的大小写
我面临着一个问题,要把这个名字分成一个类别。我有一个很大的名称列表,希望根据第一个字符与字母范围的匹配(例如[a-C]、[D-e]…)在类别列中将它们分开。以下是一个例子:Sql server 语句第一个字符与字母范围匹配时的大小写,sql-server,Sql Server,我面临着一个问题,要把这个名字分成一个类别。我有一个很大的名称列表,希望根据第一个字符与字母范围的匹配(例如[a-C]、[D-e]…)在类别列中将它们分开。以下是一个例子: SELECT RecID, Name , CASE WHEN LEFT(Name, 1) = 'A' THEN 'Cat1' WHEN LEFT(Name, 1) = 'B' THEN 'Cat1' WHEN LEFT(Name, 1) = 'C' THEN
SELECT RecID, Name
, CASE
WHEN LEFT(Name, 1) = 'A' THEN
'Cat1'
WHEN LEFT(Name, 1) = 'B' THEN
'Cat1'
WHEN LEFT(Name, 1) = 'C' THEN
'Cat1'
WHEN LEFT(Name, 1) = 'D' THEN
'Cat2'
WHEN LEFT(Name, 1) = 'E' THEN
'Cat2'
WHEN LEFT(Name, 1) = 'F' THEN
'Cat3'
WHEN LEFT(Name, 1) = 'G' THEN
'Cat3'
ELSE
'Cat999'
END AS Category
FROM Table1
我可以对每个字母和数字使用WHEN语句,但那太多了。下面有什么方法可以让我这样做吗?也许是正则表达式
SELECT RecID, Name
, CASE
WHEN LEFT(Name, 1) = 'A-C' THEN
'Cat1'
WHEN LEFT(Name, 1) = 'D-E' THEN
'Cat2'
WHEN LEFT(Name, 1) = 'F-G' THEN
'Cat3'
ELSE
'Cat999'
END AS Category
FROM Table1
谢谢,您可以在
When left(name,1) between 'A' and 'C'
你可以在两个词之间使用
When left(name,1) between 'A' and 'C'
正如前面提到的,Thebetween也可以很好地工作!我不知道我可以使用像“[]”这样的字母范围。非常感谢。正如前面提到的,Thebetween也可以很好地工作!我不知道我可以使用像“[]”这样的字母范围。非常感谢。也谢谢你这个解决方案。也谢谢你这个解决方案。