Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

T-SQL join table tylko wtedy, gdy tabela nie jest pusta

Zakładam, że chcesz zaznaczyć wszystkie, jeśli nie ma wiersza w TableTwo . Potrzebujesz OR i NOT EXISTS :

SELECT 
   T1.* 
FROM
   TableOne T1
WHERE 
   EXISTS(SELECT 1 from TableTwo WHERE T1.RecordID=RecordID)
   OR NOT EXISTS(SELECT 1 FROM TableTwo)

SQL-Fiddle




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dowiedz się, czy tabela jest partycjonowana w SQL Server (T-SQL)

  2. Najlepszy poziom izolacji, aby uniknąć zakleszczeń przy użyciu zdania UPDATE w Sql Server 2005

  3. Node.js i Microsoft SQL Server

  4. Jak uzyskać najniższy, wspólny rodzic dla 2 wierszy w tabeli rekurencyjnej (SQL)

  5. Znajdź kolumny zawierające tylko zera