需要SQL查询才能将列值映射到列名

时间:2013-01-06 06:35:23

标签: mysql sql select

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

c1   c2   c3  Selection

X    Y    Z   2

A    B    C   3

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

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

提前致谢

3 个答案:

答案 0 :(得分:2)

您必须使用 CASE IF

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

请参阅此处,例如...... link

答案 1 :(得分:2)

SELECT  CASE Selection
            WHEN 1 THEN c1
            WHEN 2 THEN c2
            ELSE c3
        END val
FROM    tableName

答案 2 :(得分:0)

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

SELECT * FROM mytable WHERE selection = 'yourvalue'