根据条件插入 Datediff 列

INSERT INTO Datediff column based on conditions

我在 Hive 中有一个 table 列:

COL_NAME
patient_num       int
proc_start_date   string
proc_end_date     string
lab               string
lab_start_date    string
lab_val           double
units             string

我想添加一个 Datediff 列,如果是在手术前进行的实验室检查 (proc_start_date) returns 天,以及在手术结束后进行的实验室检查 (proc_end_date).

INSERT INTO TABLE t2 SELECT t.*
datediff(lab_start_date, proc_start_date) WHERE lab_start_date < proc_start_date
datediff(lab_start_date, proc_end_date) WHERE lab_start_date > proc_start_date
FROM t2

您能否就编辑我的语法或使用不同的函数提出建议?提前致谢

您可以使用 case when.


SELECT t.*,
Case when lab_start_date < proc_start_date then datediff(lab_start_date, proc_start_date) 
when lab_start_date > proc_start_date then 
datediff(lab_start_date, proc_end_date)
End dadediff_col
FROM t2 t