cross apply 为 null 时如何 return 行
How return row when cross apply is null
我有一行数据要添加列,所以我要交叉应用一些数据。
但是,正在应用的 table 有时为空。
当应用的 table 为 null 时,不会返回任何内容。
Table 1
| a | b | c |
|---+---+---|
| 0 | 1 | 1 |
Table 2
| d | e | f |
|---+---+---|
查询
select top 1
[col_1] = coalesce([a], [d], '')
from table_1
cross apply ( select [d], [e] from table_2)
预期输出
| a | b | c |
|---+---+---|
| 0 | 1 | 1 |
实际输出
*null*
在交叉应用 Table 2
时,无论数据是否可用,如何保留 Table 1
中的列?
注意:我正在尝试将其与合并一起使用。
使用outer apply
:
select top 1
[col_1] = coalesce([a], [d], '')
from table_1
outer apply ( select [d], [e] from table_2)
我有一行数据要添加列,所以我要交叉应用一些数据。
但是,正在应用的 table 有时为空。
当应用的 table 为 null 时,不会返回任何内容。
Table 1
| a | b | c |
|---+---+---|
| 0 | 1 | 1 |
Table 2
| d | e | f |
|---+---+---|
查询
select top 1
[col_1] = coalesce([a], [d], '')
from table_1
cross apply ( select [d], [e] from table_2)
预期输出
| a | b | c |
|---+---+---|
| 0 | 1 | 1 |
实际输出
*null*
在交叉应用 Table 2
时,无论数据是否可用,如何保留 Table 1
中的列?
注意:我正在尝试将其与合并一起使用。
使用outer apply
:
select top 1
[col_1] = coalesce([a], [d], '')
from table_1
outer apply ( select [d], [e] from table_2)