【问题标题】:MYSQL using concat with case [closed]MYSQL 使用带有大小写的 concat [关闭]
【发布时间】:2014-03-03 09:17:30
【问题描述】:
SELECT CONCAT(firstname," ",lastname," ",CASE dept_id
WHEN  '1'    THEN  'ITD'
WHEN  '4'    THEN  'FMAD'
WHEN  '6'    THEN  'GCSMD'
WHEN  '7'    THEN  'SSHED'
WHEN  '10'   THEN  'GPD'
ELSE  'Z_ISDC'
END AS ayam) as staffname
FROM ost_staff

我希望staffname 的输出是“John Doe ITD”,但是 它不起作用。

【问题讨论】:

  • 请说明它不起作用
  • -1“它不起作用”是对任何问题的绝对可怕的描述。
  • "It doesn't work" 不是正确的错误信息,请解释一下究竟是什么不起作用。

标签: mysql case concat


【解决方案1】:

试试这个,你的CASE 格式不正确。

SELECT 
CONCAT(firstname," ",lastname," ",
CASE WHEN dept_id = '1' THEN 'ITD' 
     WHEN dept_id = '4' THEN 'FMAD' 
     WHEN dept_id = '6' THEN 'GCSMD' 
     WHEN dept_id = '7' THEN 'SSHED' 
     WHEN dept_id = '10' THEN 'GPD' ELSE 'Z_ISDC' END) 
as staffname 
FROM ost_staff

另外,你不能命名你的CASECASE 需要一个简单的END

【讨论】:

  • 投反对票的人能解释一下自己吗?
  • 我只是想问问自己:)
  • 不是反对者,但如果你解释你做了什么(从案例中删除别名,而不是格式化案例),也许它会有所帮助。
  • 我认为指出 CASE 是错误的。但是会解释一下。
  • 您能解释一下您不使用 OP 的 CASE <column> WHEN <expr> 的原因吗?
【解决方案2】:

CASEEND 中删除AS ayam

使用CASE子句的结果作为CONCAT的参数时,不能使用别名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-24
    • 2021-10-20
    • 2010-11-08
    • 1970-01-01
    • 2016-03-28
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多