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

Jak skrócić SQL gdzie klauzula

SQL Server nie wykonuje zwarcia (ani nie powinien).

Jeśli potrzebujesz, nie próbuj w pewnych okolicznościach musisz to wymusić w sposobie, w jaki piszesz zapytanie.

W przypadku tego zapytania najłatwiejszym rozwiązaniem byłoby użycie CASE wyrażenie w WHERE klauzula.

declare @queryWord as nvarchar(20) = 'asdas'

SELECT  * FROM TABLE_1 
WHERE TABLE_1.INIT_DATE = (CASE WHEN ISDATE(@queryWord) = 1 
                                THEN CONVERT(Date, @queryWord)
                           ELSE NULL  END)

Z drugiej strony, CASE i zagnieżdżanie zapytań to jedyne dwa obsługiwane sposoby, o których mogę pomyśleć, aby wymusić kolejność oceny dla warunków zależnych w SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać dane z ostatnich 7 dni od aktualnej daty i godziny do ostatnich 7 dni na serwerze sql?

  2. SQL Server:przekonwertuj ((int)rok,(int)miesiąc,(int)dzień) na Datetime

  3. Jakiś sposób na wstawienie lub aktualizację SQLBulkCopy, jeśli istnieje?

  4. Błąd nieprawidłowej nazwy kolumny podczas wywoływania wstawiania po utworzeniu tabeli

  5. sql grupuj tylko według wierszy, które są w sekwencji