【问题标题】:MySql : fill a column thanks to a IF condition ? (see example inside ;) )MySql:由于 IF 条件填充一列? (见里面的例子;))
【发布时间】:2021-06-05 02:14:22
【问题描述】:

我有一个如下所示的数据库表:

Name Town Type Brand Ref
Smith London Big Sony 1020
Carlos Rio Big Nokia 050
Francois Paris Little Sony 250

我需要得到:

Name Town Big_Sony Big_Nokia Little_Sony Little_Nokia
Smith London 1020
Carlos Rio 050
Francois Paris 250

是否有可能在 IF 条件下填充右列?

我真的不知道我是否可以这样做......

感谢您的宝贵帮助:-)

编辑:我尝试了 Forpas 的建议,但我只是添加了

Name Town Type Brand Ref
Roberto Roma Little Sony 100

但我没有更多结果:(见here

【问题讨论】:

  • 您在 INSERT 语句中的 'Roberto' 行之前遗漏了一个逗号。

标签: mysql database if-statement select conditional-statements


【解决方案1】:

你需要条件聚合:

SELECT Name, Town,
       MAX(CASE WHEN Type = 'Big' AND Brand = 'Sony' THEN Ref END) Big_Sony,
       MAX(CASE WHEN Type = 'Big' AND Brand = 'Nokia' THEN Ref END) Big_Nokia,
       MAX(CASE WHEN Type = 'Little' AND Brand = 'Sony' THEN Ref END) Little_Sony,
       MAX(CASE WHEN Type = 'Little' AND Brand = 'Nokia' THEN Ref END) Little_Nokia
FROM tablename
GROUP BY Name, Town 

请参阅demo
结果:

Name Town Big_Sony Big_Nokia Little_Sony Little_Nokia
Carlos Rio null 50 null null
Francois Paris null null 250 null
Smith London 1020 null null null

【讨论】:

  • 您好 Forpas,非常感谢您的帮助 :) 但我尝试添加记录但没有任何结果:请参阅此处dbfiddle.uk/…
  • @AbouIlyès 您在 INSERT 语句中遗漏了一个逗号:dbfiddle.uk/…
猜你喜欢
  • 1970-01-01
  • 2021-11-15
  • 2021-08-14
  • 2020-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-09
  • 1970-01-01
相关资源
最近更新 更多