2012-02-08 3 views
2

は、次の問合せを考えてみます。テーブルの値に基づいて文字列を返すことはできますか?

SELECT operation, [...] FROM tableName

operationフィールドは、私がやりたいどのような1〜4の整数を取得するには、に基づいて、SQLクエリ内の変数に文字列値を代入です整数値はoperationです。

私の責任であれば、各操作の名前が含まれている対応する表があります。その場合は、JOINが操作文字列を受け取ります。残念ながら、私はデータベースを制御しません。

これはSQLができることでもわかりませんが、PHPを使用して返されたデータを繰り返し処理してこのタスクを実行することはできますが、可能であればすべてを1ヒットで行うのが理にかなっています。

答えて

8

カイルこの何か試してみてください。この例では

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

+1他の回答に掲載されているように、簡単なcase文ではなく、検索case文を使用することをお勧めしますが – GarethD

+0

まさにIありがとう、ありがとう。 – Kalessin

4
select 
    case when operation = 1 then 
    '1st operation' 
    case when operation = 2 then 
    '2nd operation' 
    else 
    'Unknown operation' 
    end operation_name 
from tableName 
関連する問題