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

Pernyataan bersyarat dalam kueri sql pada Halaman ASP klasik

Di VBScript Anda dapat menggunakan simbol ampersand (&) untuk menggabungkan string. Coba ini:

strSqlData="select * from MyTable where gender='male'" 

if AcademicYear <> "" then 
strSqlData= strSqlData & " and AcademicYear=" & AcademicYear
end if

if Batch <> "" then
strSqlData= strSqlData & " and Batch=" & Batch    
end if  

if School <> "" then 
strSqlData= strSqlData & " and School=" & School
end if  

Anda memiliki tiga klausa "dan" terpisah untuk ditambahkan ke kueri sql Anda. Pernyataan bersyarat tidak tergantung satu sama lain sehingga Anda tidak boleh menggunakan elseif yang untuk opsi berbeda dalam satu pernyataan bersyarat. Lebih mudah untuk memeriksa apakah string tidak kosong if stringname <> "" daripada menggunakan len , (dan saya ragu pernyataan bersyarat Anda akan berfungsi karena Anda tampaknya menggunakan huruf kecil "o" di mana Anda seharusnya menggunakan nol)

Sangat mudah untuk membuat kesalahan saat Anda merakit kueri sql seperti ini. Dalam pengujian, seringkali perlu menambahkan baris seperti Response.Write strSqlData sebelum Anda mencoba menjalankannya untuk memeriksa apakah kueri tersebut sesuai dengan keinginan Anda

Seperti yang disarankan oleh komentar lain, kode Anda rentan terhadap serangan injeksi SQL. Url yang berisi ".asp?" hampir bisa dijamin akan terkena serangan tipe ASPROX cepat atau lambat. Kueri berparameter adalah cara terbaik untuk mencegah hal ini, tetapi satu pendekatan cepat jika nilai string kueri Anda semuanya numerik adalah dengan menggunakan cint() - misalnya

strSqlData= strSqlData & " and AcademicYear=" & cint(AcademicYear)

Ini akan menimbulkan kesalahan ketidakcocokan jenis jika string kueri berisi apa pun selain angka, dan skrip akan jatuh sebelum mencoba mengeksekusi kueri sql Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat prosedur tersimpan yang secara opsional akan mencari kolom?

  2. Cara lebih baik menduplikasi satu set data di SQL Server

  3. Cara menggunakan Operator Logika APAPUN / BEBERAPA di SQL Server - Tutorial SQL Server / TSQL Bagian 127

  4. Bagaimana Anda membuat pencarian teks lengkap wildcard terkemuka berfungsi di SQL Server?

  5. Apa yang dimaksud dengan ORDER BY (SELECT NULL)?