0

我有以下表结构(表名是问题)

c1   c2   c3  Selection

X    Y    Z   2

A    B    C   3

这里 c1,c2,c3 和 Selection 是列名。我想根据列选择的值检索 c1 或 c2 或 c3 的值。例如。如果选择值是 2,那么我想要 c2 列的相应值,即 Y。如果选择值是 3,那么它应该选择 c3 列的值,这里是 C。

请帮助我在这里形成 Select Sql 查询。我尝试了自己,但无法找到正确的解决方案。

提前致谢

4

3 回答 3

2

您必须使用CASEIF

   select if(selection=2 ,b,if(selection=3,c,a)) from Table1 ;

例如,请参见此处...链接

于 2013-01-06T06:39:11.010 回答
2
SELECT  CASE Selection
            WHEN 1 THEN c1
            WHEN 2 THEN c2
            ELSE c3
        END val
FROM    tableName
于 2013-01-06T06:41:47.790 回答
0

这非常简单,只需运行一个简单的查询,它将返回所有列,然后您应该使用适当的列。

SELECT * FROM mytable WHERE selection = 'yourvalue'
于 2013-01-06T06:38:39.677 回答