0

我有一个以下形式的mysql表:

id    valA    valB
1      0       0
2      0       1
3      1       0
4      1       1

And it goes on like that..

属性valAvalB将只有布尔值。我想找出一个 mysql 查询,它将产生以下输出:

id    result
1       A
2       B
3       C
4       D

这里使用的逻辑是:

if valA = 0 and valB = 0 then result = A
if valA = 0 and valB = 1 then result = B
if valA = 1 and valB = 0 then result = C
if valA = 1 and valB = 1 then result = D

我发现这个有点相似的问题,但未能将它与这个问题联系起来。

提前感谢您的帮助。

4

3 回答 3

1

像这样的东西?

select
    case 
        when valA = 0 and valB = 0 then 'A'
        when valA = 0 and valB = 1 then 'B'
        when valA = 1 and valB = 0 then 'C'
        when valA = 1 and valB = 1 then 'D'
        end as result
from 
    table
于 2013-09-24T13:43:50.727 回答
0

select id,case when valA = 0 and valB = 0 then 'A' when valA = 0 and valB = 1 then 'B' when valA = 1 and valB = 0 then 'C' when valA = 1 and valB = 1 then 'D' end as result from table1

于 2013-09-24T14:13:57.123 回答
0

如果您将 valA 和 valB 作为二进制系统中的两位,则在将它们转换为十进制后,您可以将结果用作某个列表的索引。

SELECT id, ELT((2*valA+valB+1),'A','B','C','D') AS my_result FROM table
于 2013-09-24T14:34:17.650 回答