Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да съедините накъсо клаузата Where в SQL

SQL Server не прави късо съединение (нито трябва).

Ако имате нужда, не опитвайте нещо при определени обстоятелства, трябва да наложите това в начина, по който пишете заявката си.

За тази заявка най-лесното решение би било да се използва CASE израз във вашия WHERE клауза.

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)

Извън ръка, CASE и влагането на заявки са единствените два поддържани начина, за които мога да се сетя, за налагане на ред на оценка за зависими условия в 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. Как да възстановите база данни от C#

  2. Кои колони обикновено правят добри индекси?

  3. Неявни преобразувания и закръгляния

  4. Как да използвате SSIS API за четене на пакет и определяне на последователност от задачи от код (PrecedenceConstraints)

  5. 2 начина за създаване на база данни на свързан сървър с помощта на T-SQL