带有"OR"语句的案例陈述

ash*_*ish -1 sql sql-server sql-server-2005

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'
Run Code Online (Sandbox Code Playgroud)

我的基本要求是对CASE使用'OR'(如果可能的话),请建议我是否做错了.

And*_*mar 5

写入的另一种方式很case接近,但是你必须重复这个变量:

CASE
  WHEN ProductLine in ('R', 'r') THEN 'Road'
  WHEN ProductLine in ('M', 'm') THEN 'Mountain'
Run Code Online (Sandbox Code Playgroud)

或者是一个like角色类:

CASE
  WHEN ProductLine like '[Rr]' THEN 'Road'
  WHEN ProductLine like '[Mm]' THEN 'Mountain'
Run Code Online (Sandbox Code Playgroud)

请注意,在SQL中,字符串比较默认情况下不区分大小写.您可以通过设置区分大小写的数据库排序规则来更改默认值,但这很不寻常.