我面临将名称分类为类别的问题。我有一个很大的名称列表,并希望根据与字母范围的第一个字符匹配(例如[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
'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
谢谢,
答案 0 :(得分:2)
您可以在例如
之间使用 When left(name,1) between 'A' and 'C'
答案 1 :(得分:2)
{{1}}