sql >> Databáze >  >> RDS >> Sqlserver

Podmíněný příkaz JOIN SQL Server

Myslím, že to, o co žádáte, bude fungovat, když se připojíte k Initial tabulky do obou Option_A a Option_B pomocí LEFT JOIN , který vytvoří něco takového:

Initial LEFT JOIN Option_A LEFT JOIN NULL
OR
Initial LEFT JOIN NULL LEFT JOIN Option_B

Příklad kódu:

SELECT i.*, COALESCE(a.id, b.id) as Option_Id, COALESCE(a.name, b.name) as Option_Name
FROM Initial_Table i
LEFT JOIN Option_A_Table a ON a.initial_id = i.id AND i.special_value = 1234
LEFT JOIN Option_B_Table b ON b.initial_id = i.id AND i.special_value <> 1234

Jakmile to uděláte, 'ignorujete' sadu NULLS. Další trik je zde v řádku SELECT, kde se musíte rozhodnout, co dělat s NULL poli. Pokud jsou tabulky Option_A a Option_B podobné, můžete použít COALESCE funkce vrátit první hodnotu NON NULL (jako v příkladu).

Další možností je, že budete muset jednoduše vypsat pole Option_A a Option_B a nechat vše, co používá ResultSet pro určení, která pole použít.



  1. Jak mohu použít hash hesla s PDO, aby byl můj kód bezpečnější?

  2. Jak získat záznamy mezi 2 daty v MySQL

  3. Jak najít a nahradit text v tabulce mysql

  4. Profilování dotazů šetrné k šířce pásma pro Azure SQL Database