首页 > 解决方案 > SQL JOINS 与 excel vlook up 类似,但有条件

问题描述

我正在尝试在 SQL 中创建 2 个表以形成第三个表。示例和预期输出如下

表格1

Date      CHI      HOS
1/1/1       1           a
1/1/1       2           b
2/1/1       1           a
3/1/1       3           c

表2

Date       CHI  CRN
1/1/1      2    b
1/1/1      1    a
2/1/1      2    b
3/1/1      3    d

表 1 _new

Date      CHI      HOS  Hosp_new
1/1/1       1       a   a
1/1/1       2       b   b
2/1/1       1       a   a
3/1/1       3       c   d

条件是,

  1. 唯一的关键CHI
  2. table1.Hos = table2.CRN那么在哪里table1.HOS
  3. table1.HOS <> table2.CRN那么在哪里table2.CRN
  4. table2那么在哪里找不到 table1 CHI 中的 vlook up 列table1.HOS
  5. 创建一个新列HOSP_new并填充以上内容
  6. 它是一个 1200 万行的文件,我不想有重复的行

标签: sqlsql-server

解决方案


你可以试试这个:

   select distinct t1.date, t1.chi, t1.hos, 
           case when t1.hos != t2.hos then t2.hos 
                else t1.hos end as Hosp_new 
     from table1 t1
     left join table2 t2 on t1.chi = t2.chi and t2.date = t1.date 

推荐阅读