Bagaimana Anda membandingkan string sehingga perbandingannya benar hanya jika kasus masing-masing string sama. Sebagai contoh:
Select * from a_table where attribute = 'k'
... akan mengembalikan baris dengan atribut 'K'. Saya tidak ingin perilaku ini.
sql
sql-server
amccormack
sumber
sumber
Jawaban:
Lakukan triknya.
sumber
Latin1_General_CS_AS
adalah spesifikasi pemeriksaan. Collation mengacu pada seperangkat aturan yang menentukan bagaimana data diurutkan dan dibandingkan. Lihat halaman ini untuk informasi lebih lanjut.Anda juga dapat mengonversi atribut itu sebagai case sensitif menggunakan sintaks ini:
Sekarang pencarian Anda akan peka huruf besar-kecil .
Jika Anda ingin membuat case kolom tidak sensitif lagi, maka gunakan
sumber
Anda Dapat dengan mudah mengkonversi kolom menjadi VARBINARY (Panjang Maks), Panjangnya harus maksimum yang Anda harapkan untuk menghindari perbandingan yang rusak, Cukup untuk mengatur panjang sebagai panjang kolom. Potong kolom membantu Anda untuk membandingkan nilai nyata kecuali ruang memiliki arti dan dihargai di kolom tabel Anda, Ini adalah contoh sederhana dan seperti yang Anda lihat saya Trim nilai kolom dan kemudian konversi dan bandingkan .:
Semoga bantuan ini.
sumber
Sama seperti alternatif lain Anda dapat menggunakan HASHBYTES, sesuatu seperti ini:
sumber
Anda dapat menentukan
attribute
sebagaiBINARY
atau menggunakanINSTR
atauSTRCMP
untuk melakukan pencarian Anda.sumber
INSTR
danSTRCMP
fungsinya.