Как вернуть строку, когда перекрестное применение равно нулю - PullRequest
0 голосов
/ 31 марта 2020

У меня есть строка данных, к которой я хотел бы добавить столбцы, поэтому я перекрестно применяю некоторые данные.

Однако применяемая таблица иногда пуста.

Когда примененная таблица равна нулю, ничего не возвращается.

Таблица 1

| a | b | c |
|---+---+---|
| 0 | 1 | 1 |

Таблица 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 1 при перекрестном применении Table 2 независимо от того, доступны ли данные?

Примечание. Я пытаюсь использовать это с объединением.

1 Ответ

1 голос
/ 31 марта 2020

Использование outer apply:

select top 1 
[col_1] = coalesce([a], [d], '') 
from table_1
outer apply ( select [d], [e] from table_2)
...