Могу ли я вернуть строку на основе значения в таблице? - PullRequest
2 голосов
/ 08 февраля 2012

Рассмотрим следующий запрос:

SELECT operation, [...] FROM tableName

Поле operation будет извлекать целое число от 1 до 4. Я хотел бы назначить строковое значение дляпеременная в запросе SQL, основанная на целочисленном значении operation.

Если бы это зависело от меня, у меня была бы соответствующая таблица, содержащая имя каждой операции, и в этом случае JOINвзял бы строку операции.К сожалению, я не контролирую базу данных.

Я не знаю, может ли это вообще быть чем-то, что может сделать SQL, и я, конечно, мог бы перебирать возвращаемые данные, используя PHP для выполнения этой задачи, но это имеет смыслсделать все это одним ударом, если это возможно.

Ответы [ 2 ]

10 голосов
/ 08 февраля 2012

Попробуйте что-нибудь убить:

SELECT 
  CASE 
     operation
  WHEN 1 THEN 'OP1'
  WHEN 2 THEN 'OP2'
  WHEN 3 THEN 'OP3'
  WHEN 4 THEN 'OP4'
  ELSE
     'Unknown OP'
  END OperationName
  , 
[...] FROM tableName
4 голосов
/ 08 февраля 2012
select
  case when operation = 1 then
    '1st operation'
  case when operation = 2 then
    '2nd operation'
  else
    'Unknown operation'
  end operation_name
from tableName
...