根据2列SQL的值获取一列

时间:2014-08-27 07:32:27

标签: sql

我有一个包含许多列的表,其中有两列我感兴趣。

这两列可能包含(p,p)(a,p)(p,a)(a,a)之类的值。

根据这些列中共同存在的值,我想分别针对上述情况显示第三列1,0.5,0.5,0

例如表:

column1 column2 column3
   p       p        1
   p       a       0.5
   a       p       0.5
   a       a        0

如何做到这一点。我尝试了很多但无济于事。请帮助。

2 个答案:

答案 0 :(得分:2)

这是使用CASE语句的示例,该语句检查两列中的值并返回第三列中的所需值。

CASE WHEN column1 = 'p' AND column2 = 'p' THEN 1
     WHEN (column1 = 'a' AND column2 = 'p') OR (column1 = 'p' AND column2 = 'a') THEN 0.5
     WHEN column1 = 'a' AND column2 = 'a' THEN 0 END AS Column3

答案 1 :(得分:1)

SELECT   column1, column2, 
     CASE 
         WHEN column1 = p AND column2 = p THEN 1
         WHEN column1 = a AND column2 = a THEN 0
         ELSE 0.5
      END AS column3
FROM Production.Product

你去吧