SQL Server mengikuti spesifikasi ANSI / ISO SQL-92 (Bagian 8.2,, Aturan umum # 3) tentang cara membandingkan string dengan spasi. Standar ANSI membutuhkan padding untuk string karakter yang digunakan dalam perbandingan sehingga panjangnya cocok sebelum membandingkannya. Padding secara langsung mempengaruhi semantik predikat klausa WHERE dan HAVING dan perbandingan string Transact-SQL lainnya. Sebagai contoh, Transact-SQL menganggap string 'abc' dan 'abc' setara untuk sebagian besar operasi perbandingan.
Satu-satunya pengecualian untuk aturan ini adalah predikat LIKE. Ketika sisi kanan dari ekspresi predikat LIKE fitur nilai dengan spasi tambahan, SQL Server tidak memadatkan dua nilai dengan panjang yang sama sebelum perbandingan terjadi. Karena tujuan dari predikat LIKE, menurut definisi, adalah untuk memfasilitasi pencarian pola daripada tes persamaan string sederhana, ini tidak melanggar bagian dari spesifikasi ANSI SQL-92 yang disebutkan sebelumnya.
Berikut adalah contoh umum dari semua kasus yang disebutkan di atas:
\ntidak memiliki arti dalam SQL Server. Itu tidak ditafsirkan sebagai baris baru. Lagi pula, ini bukan jawaban untuk pertanyaan yang diajukan.
Martin Smith
@ MartinSmith tetapi ditulis dalam MSDN "Jika Anda harus memiliki spasi tambahan di string Anda, Anda harus mempertimbangkan menambahkan karakter spasi putih di akhir, sehingga SQL Server tidak memangkas string."
Anda bisa menambahkan ruang putih ke kondisi Anda.
Trailing Spaces dalam Fungsi String
sumber
\n
tidak memiliki arti dalam SQL Server. Itu tidak ditafsirkan sebagai baris baru. Lagi pula, ini bukan jawaban untuk pertanyaan yang diajukan.