简体   繁体   中英

Combining 2 columns in sql query based on alternate field

I have 2 columns in a database(sent_time, accept_time) which each include time stamps, as well as a field that can have 2 different values (ref_col). I would like to find a way in my query to make a new column (result_col), which will check the value of ref_col, and copy sent_time if the value is 1, and copy accept_time if the value is 2.

I am using pandas to query the database in python, if that has any bearing on the answer.

When you say "I have 2 columns in a database ", what you actually mean is that you have 2 columns in a table , right?

In sql for postgresql it would be something like:

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

don't know how close from SQL standard that is, but would assume it's not that far.

Just use case expression statement :

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM