T-SQL多表垂直联接
数据表连接
两个与多个数据表之间通过共同的字段关联,属于水平连接。
可以在多个表中,垂直的连接,存在相同的字段结果,并且
对应的每个字段类型相同。
1、Union [all]
连接两个数据表,存在相同的字段,见下图
2,INTERSECT
找到两个数据表的交集
3、except
找出不在其中一个表的数据
2,3,内容后续用到在介绍。
4、CTE
Common Table Expression兼具视图和派生表的功能,用户可以将其视为缓存的视图,或时在同一批子查询中可以重复使用的派生表。
CET的格式
WITH <CTE 名称>(字段列表)
AS
{
<SQL 查询语法>
}
SELECT <字段> FROM <CTE名称>
注:
CTE名称:CTE的名称与数据库内其他对象的名称不相关,如果优先 级高于数据库的同名的表。
字段列表名称:列表选择的字段,查询返回的数据字段名,可以重 新定义,可以不定义,
sql查询语法:select语句。
分别以三种查询方式(视图,派生表,CTE)完成查询,得到相同的查询结果。
用户可以把CTE为缓存的视图,它的生命周期仅为一次。
下列情况可以考虑CTE
查询使用一次的数据,
重复使用,但是不需要保存在数据库中
大部分可以使用通过派生表实现,CTE的语法明确易懂。
posted on 2026-05-25 20:05 panpeng666 阅读(45) 评论(0) 收藏 举报
浙公网安备 33010602011771号