2011-11-28 76 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