MYSQL, используя поле, созданное с помощью как в concat - PullRequest
0 голосов
/ 28 ноября 2011

говорят, что у меня есть таблица, т.е.

___________________
| 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

Я получаю сообщение об ошибке, так как не могу использовать new_job в моем concat, все равно естьсделать это?

Спасибо заранее :))

Ответы [ 2 ]

3 голосов
/ 28 ноября 2011

Оберните это как подзапрос:

 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 голосов
/ 28 ноября 2011

Помимо «упаковки», вы можете использовать CASE внутри функции CONCAT():

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