Tenho esta consulta SQL usando uma Expressão de Tabela Comum:
with a as (
select top 1 flow_id
from flow
where invoice_id > 0
), b as (
select '45' as col2
)
select *
from a, b
se nenhuma das linhas satisfizer a condição invoice_id>0
na flow
tabela, então obtenho o seguinte resultado:
Quero o seguinte resultado mesmo que nenhum registro seja encontrado na flow
tabela:
Isso pode ser feito?
Você pode fazer isso:
Então, use uma junção à direita, certificando-se de que qualquer linha na tabela do lado direito esteja independentemente de uma linha no lado esquerdo ser encontrada com base na condição de junção. Neste caso, não há vinculação real, pois você fez uma CROSS JOIN efetivamente, então a condição é
1=1
refletir isso.Não sou fã de junções artificiais com
1 = 1
.Outer apply
nos permite evitar isso, por exemploRetornos:
Sim, é completamente possível.
Uma junção à esquerda em uma coluna fictícia pode ajudar você com isso.