SELECT ProductNumber, Category =
CASE ProductLine
WHEN 'R' or 'r' THEN 'Road'
WHEN 'M' or 'm' THEN 'Mountain'
WHEN 'T' or 't' THEN 'Touring'
WHEN 'S' or 's' THEN 'Other sale items'
ELSE 'Not for sale'
我的基本要求是对案例使用'或'(如果可能的话),请建议我是否做错了。
答案 0 :(得分:5)
写case
的另一种方法很接近,但是你必须重复变量:
CASE
WHEN ProductLine in ('R', 'r') THEN 'Road'
WHEN ProductLine in ('M', 'm') THEN 'Mountain'
或like
个字符类:
CASE
WHEN ProductLine like '[Rr]' THEN 'Road'
WHEN ProductLine like '[Mm]' THEN 'Mountain'
请注意,在SQL中,字符串比较默认情况下不区分大小写。您可以通过设置区分大小写的数据库排序规则来更改默认值,但这很不寻常。
答案 1 :(得分:0)
你也可以写
select
ProductNumber,
case upper(ProductLine)
when 'R' then 'Road'
when 'M' then 'Mountain'
when 'T' then 'Touring'
when 'S' then 'Other sale items'
else 'Not for sale'
end as Category
您可以将排序规则设置为不区分大小写,只需将ProductLine与字母
进行比较即可答案 2 :(得分:0)
只需你可以做;
SELECT ProductNumber, CASE LOWER(ProductLine)
WHEN 'r' THEN 'Road'
WHEN 'm' THEN 'Mountain'
END AS Category
FROM TableName
有关详细信息: Click here
答案 3 :(得分:0)
我会建议案例落实,但在SQL中不允许这样做。但是,SQL的解决方法有一个非常好的答案:Can the SQL Case Statment fall through?