基于备用字段在sql查询中组合2列

时间:2018-05-30 13:42:01

标签: python sql database

我在数据库中有2列(sent_time,accept_time),每列包含时间戳,以及可以有2个不同值(ref_col)的字段。我想在我的查询中找到一种方法来创建一个新列(result_col),它将检查ref_col的值,如果值为1则复制sent_time,如果值为2,则复制accept_time。

我正在使用pandas在python中查询数据库,如果这与答案有关。

2 个答案:

答案 0 :(得分:1)

当您说"我在数据库"中有2列时,您实际上的意思是您在中有2列,正确?

在postgresql的sql中,它将类似于:

select (case when ref_col = 1 then sent_time else accept_time end) as result_col
from mytable

不知道SQL标准有多接近,但会认为它不是那么远。

答案 1 :(得分:1)

只需使用case表达式语句

SELECT sent_time,
       accept_time,
       ref_col,
       CASE WHEN ref_col = 1 THEN sent_col
            ELSE accept_col
        END AS result_col
  FROM Your_Table