首页 > 解决方案 > SQL Advance,创建填充有条件值的新列

问题描述

请您支持下面的问题,我尝试根据条件值在我的 SQL 查询中填充一个新的列。

伪代码:

IF ap_id exists in visit_table and visit_type = 'first'
then firs_tvisit_id = visit_table.visit_id and first_visit_user = visit_table.Username

这是访问表。

在此处输入图像描述

这是 ap_table (键值在哪里):

在此处输入图像描述

下面是预期的表格。

在此处输入图像描述

SQL 能够进行这种数据操作,如果有的话我怎么能得到这个。

我已经尝试过左连接、内连接和完全外连接。但是我无法创建一个新列并根据条件填充它。

标签: sqljoinpivot

解决方案


一种方法是多个joins:

select a.*,
       v1.visit_id, v1.user_name,
       v2.visit_id, v2.user_name,
       v3.visit_id, v3.user_name
from ap_table a left join
     visit_table v1
     on v1.ap_id = a.ap_id and v1.type = 'first' left join
     visit_table v2
     on v2.ap_id = a.ap_id and v2.type = 'second' left join
     visit_table v3
     on v3.ap_id = a.ap_id and v3.type = 'third'

推荐阅读