SQL Server查询中对于单列数据','分割的数据进行的拆分操作,集合的每一个行变多行

1、cross apply

  cross apply 我们可以把它看作成是inner join 来使用

2、outer apply

  outer apply我们可以把它看做是left join 来使用

注意:

  1、得到的结果集 虽然是一样的,但是区别在于,cross apply 和outer apply 在使用的过程中,是不需要加入条件来进行连接。

  2、cross apply 和outer apply 后面接函数之后,所使用到的字段会自动和 它们前面的结果集进行自动关联,大幅度提高查询性能。

下面我们正式看一个例子。

查询sql

SQL Server查询中对于单列数据','分割的数据进行的拆分操作,集合的每一个行变多行

原始表的字段,我们希望将该列字段变成 没有 ' ,' 分割的字段列,方便进行其他的查询处理

SQL Server查询中对于单列数据','分割的数据进行的拆分操作,集合的每一个行变多行


下面我们看看outer Apply 使用后得到我们需要的结果

查询sql:

SQL Server查询中对于单列数据','分割的数据进行的拆分操作,集合的每一个行变多行

结果截图:

SQL Server查询中对于单列数据','分割的数据进行的拆分操作,集合的每一个行变多行

本文章纯属个人做个笔记,也希望能给一些人带来帮助。

若有疑问,欢迎提出。

来源参考:SQLServer连接查询之Cross Apply和Outer Apply的区别及用法

上一篇:Valuable site on github


下一篇:同样的一句SQL语句在pl/sql 代码块中count 没有数据,但是直接用SQl 执行却可以count 得到结果