当前位置: 代码迷 >> Sql Server >> SQL CASE语句 1点小疑问
  详细解决方案

SQL CASE语句 1点小疑问

热度:34   发布时间:2016-04-24 09:36:45.0
SQL CASE语句 一点小疑问
如下语句,应该是没问题的
SELECT   ProductNumber, Category =
      CASE ProductLine
         WHEN 'R' THEN 'Road'
         WHEN 'M' THEN 'Mountain'
         WHEN 'T' THEN 'Touring'
         WHEN 'S' THEN 'Other sale items'
         ELSE 'Not for sale'
      END,
   Name
FROM Production.Product
ORDER BY ProductNumber;
如果改成以下语句,红色部分是更改的,即else后面取的是表中的一个字段,请问是否符合SQL标准呢?这样写有没有什么问题呢?
SELECT   ProductNumber, Category =
      CASE ProductLine
         WHEN 'R' THEN 'Road'
         WHEN 'M' THEN 'Mountain'
         WHEN 'T' THEN 'Touring'
         WHEN 'S' THEN 'Other sale items'
         ELSE productlineentry
      END,
   Name
FROM Production.Product
ORDER BY ProductNumber;

------解决思路----------------------
'Road'、'Mountain'都是varchar(n),保证productlineentry也是varchar(m)就肯定没问题。
用其他类型不一定错,但最好是显式转换成相同的类型。
  相关解决方案