2011-11-28 53 views
0

说我有一个表,即MYSQL,使用具有创建一个字段作为在CONCAT

___________________ 
| 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是否有这样做?

Thnaks提前:)

回答

3

把它包装成子查询:

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 
+0

你我的新英雄!我敢打赌,你穿斗篷 - 我会尽快接受这个答案。 Thankies! –

0

除了 “包装”,你可以使用CASECONCAT()函数内部:

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