一行多个case语句的SQL结果

标签 sql case

我有一个表,其中包含:

EXTDEP EXTCODE PRICE
200     10001   200
500     10001   25
600     10001   36

我想要的结果:

EXTCODE PRICE200 PRICE500 PRICE600
10001    200       25         36

我得到的结果:

EXTCODE PRICE200 PRICE500 PRICE600
10001    NULL      NULL        36
10001    NULL       25        NULL
10001    200       NULL       NULL  

我的代码:

SELECT  
      [ExtCode]

      case when extdep = '200' then price1 end as '200', 
      case when extdep = '500' then price1 end AS '500', 
      case when extdep = '600' then price1 end AS '600'

有什么想法吗? :)

最佳答案

尝试将聚合应用于 CASE 语句:

SELECT  
      [ExtCode],

      MAX(case when extdep = '200' then price1 end) as '200', 
      MAX(case when extdep = '500' then price1 end) AS '500', 
      MAX(case when extdep = '600' then price1 end) AS '600'
FROM your_table
GROUP BY ExtCode

关于一行多个case语句的SQL结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26588255/

相关文章:

mysql - 根据条件值更新行

SQL 返回列中的所有大写值

sql server存储过程更新记录

javascript - 使用 .attr() 方法的 JavaScript switch 语句的行为

SQL:当一列具有空值时对 3 列求和?

python - 用循环更新表

改变 C 中字母的大小写?

java - Switch 设置为 int 参数。创建默认情况以排除字符串,这样就不会读取错误

java - JDBC中如何获取插入ID?

Mysql FIFO消耗