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

Klauzule Jak zkratovat SQL kde

SQL Server neprovádí zkratování (ani by neměl).

Pokud to potřebujete, zkuste to něco za určitých okolností, musíte to vynutit způsobem, jakým píšete svůj dotaz.

Pro tento dotaz by nejjednodušší opravou bylo použít CASE výraz ve vašem WHERE klauzule.

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)

Okamžitě, CASE a vnoření dotazů jsou jediné dva podporované způsoby, které mě napadají, jak vynutit pořadí hodnocení pro závislé podmínky v SQL.



  1. mysql vložte do tabulky, pokud existuje

  2. Připojit Docker Compose ECONNREFUSED 172.18.0.4:3306

  3. Od XML k seznamu cest v prostředí Oracle PL/SQL

  4. Syntaxe pro klauzuli RETURNING v Mysql PDO