【问题标题】:MYSQL, using a field created with as in a concatMYSQL,使用在 concat 中使用 as 创建的字段
【发布时间】:2011-11-28 10:30:35
【问题描述】:

说我有一张桌子,即

___________________
| ID | Name | Job |
+====+======+=====+
| 01 | Fred | br  |
+====+======+=====+
| 02 | Jack | pd  |
+====+======+=====+

然后我运行一个类似的查询

SELECT 
CASE Job
WHEN 'br' THEN 'cleaner'
WHEN 'pd' THEN 'teacher'
ELSE Job
END as new_job
CONCAT( Name, 'is a', new_job )
FROM table

我得到一个错误,因为我不能在我的 concat 中使用 new_job 是否有这样做?

提前感谢:)

【问题讨论】:

    标签: mysql case concat


    【解决方案1】:

    将其包装为子查询:

     SELECT CONCAT( Name, 'is a', new_job ) FROM(
           SELECT Name, 
              CASE Job
              WHEN 'br' THEN 'cleaner'
              WHEN 'pd' THEN 'teacher'
              ELSE Job
              END as new_job
    
       FROM table ) sub
    

    【讨论】:

    • 你是我的新英雄!我敢打赌你穿斗篷——我会尽快接受这个答案。谢谢!
    【解决方案2】:

    除了“包装”之外,您还可以在CONCAT() 函数中使用CASE

    SELECT 
        CONCAT( Name
              , 'is a'
              , CASE Job
                   WHEN 'br' THEN 'cleaner'
                   WHEN 'pd' THEN 'teacher'
                  ELSE Job
                END 
              ) AS result
    FROM table
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      • 2014-04-18
      • 2012-06-03
      • 2014-05-13
      • 2023-03-27
      • 2015-11-05
      • 1970-01-01
      相关资源
      最近更新 更多