Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách sử dụng mệnh đề Where trong SQL ngắn mạch

SQL Server không làm đoản mạch (cũng không nên làm như vậy).

Nếu bạn cần nó đừng thử trong một số trường hợp, bạn cần phải bắt buộc điều đó theo cách bạn viết truy vấn của mình.

Đối với truy vấn này, cách khắc phục đơn giản nhất là sử dụng CASE biểu thức trong WHERE của bạn mệnh đề.

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)

Không thuận tiện, CASE và lồng truy vấn là hai cách duy nhất được hỗ trợ mà tôi có thể nghĩ ra để buộc một thứ tự đánh giá cho các điều kiện phụ thuộc trong 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ách tách cửa sổ truy vấn trong SQL Server Management Studio (SSMS) - SQL Server / TSQL Hướng dẫn Phần 13

  2. Tính toán giá trị bằng cách sử dụng giá trị trước đó của một hàng trong T-SQL

  3. Giúp khắc phục sự cố SqlException:Hết thời gian chờ khi kết nối, trong tình huống không tải

  4. LOG10 () Ví dụ trong SQL Server

  5. Sự khác biệt của SQL Server (đối diện với giao nhau)