2012-02-08 39 views
2

考虑下面的查询:我可以根据表中的值返回一个字符串吗?

SELECT operation, [...] FROM tableName

operation场将检索到4 1的整数,我想什么做的是一个字符串值分配给SQL查询的变量的基础上,整数值为operation

如果这取决于我,我会有一个包含每个操作名称的对应表,在这种情况下,JOIN会选取操作字符串。不幸的是,我不控制数据库。

我不知道这是否SQL甚至可以做到,而且我肯定可以使用PHP来迭代返回的数据来执行此任务,但如果可能的话,一次完成所有操作都是有意义的。

回答

8

试试这个的kile:

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语句,而不是搜索的情况下语句已经张贴在其他的答案 – GarethD 2012-02-08 10:31:44

+0

正是我正在寻找,谢谢。 – Kalessin 2012-02-08 11:40:08

4
select 
    case when operation = 1 then 
    '1st operation' 
    case when operation = 2 then 
    '2nd operation' 
    else 
    'Unknown operation' 
    end operation_name 
from tableName 
相关问题