Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Pernyataan if bersarang dalam pernyataan SELECT prosedur tersimpan SQL Server

Untuk ini saya akan mencoba menggunakan solusi SQL Dinamis yang lebih formal, seperti berikut ini, dengan parameter input yang Anda tentukan

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)

PENAFIAN: Penggunaan SQL Dinamis BUKAN sesuatu yang harus dianggap enteng, dan pertimbangan yang tepat harus diambil dalam SEMUA keadaan untuk memastikan bahwa Anda tidak terbuka terhadap serangan injeksi SQL, namun, untuk beberapa operasi jenis pencarian dinamis, ini adalah salah satu yang paling elegan. rute.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Fungsi YEARFRAC pada SQL Server tidak berfungsi

  2. Melewati tipe tabel yang ditentukan pengguna antara database SQL Server

  3. Apa literal Karakter Null di TSQL?

  4. SQL Server dbo.sysdiagrams adalah tabel pengguna atau tabel sistem

  5. Pisahkan hasil baris ke kolom