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

Câu lệnh if lồng nhau trong SQL Server lưu trữ thủ tục Câu lệnh SELECT

Đối với điều này, tôi sẽ cố gắng sử dụng giải pháp SQL động chính thức hơn, giống như sau, với các tham số đầu vào đã xác định của bạn

DECLARE @SQL VARCHAR(MAX)

SET @SQL = '
SELECT

FROM
     database.dbo.table T
WHERE
     T.deleted = ''n'' '

--Do your conditional stuff here
IF @searchf1 <> '' THEN
    SET @SQL = @SQL + ' AND fieldf1 = ' + @searchf1 + ' AND fieldr1 = ' + @searchr1 + ''' '

--Finish the query
SET @SQL = @SQL + ' ORDER BY xxx'

EXEC(@SQL)

TUYÊN BỐ TỪ CHỐI: Việc sử dụng SQL động KHÔNG phải là điều gì đó nên được xem nhẹ và cần cân nhắc thích hợp trong TẤT CẢ các trường hợp để đảm bảo rằng bạn không bị tấn công SQL injection, tuy nhiên, đối với một số hoạt động kiểu tìm kiếm động, nó là một trong những thao tác tốt nhất tuyến đường.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server lưu trữ thủ tục trả về mã kỳ quặc

  2. Sự khác biệt giữa chuyển đổi datetime trong MSExcel và SQL Server

  3. Mã trạng thái lỗi trang web SSRS 500

  4. Làm cách nào để tách nội dung ô và trích xuất thông tin vào một cột mới trong câu lệnh SQL select?

  5. Làm thế nào để Tìm các Hàng trùng lặp bởi một khóa nhưng không trùng lặp trong tất cả các cột?