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

SQL Server:IN ('asd') tidak berfungsi saat kolom NTEXT

Sebuah IN list hanyalah singkatan untuk kondisi ATAU. LIKE klausa bekerja dengan NTEXT dan TEXT bidang. Jadi, Anda dapat menggabungkan kedua ide tersebut untuk melakukan ini:

WHERE (
       someNtext LIKE N'asd'
OR     someNtext LIKE N'asd1'
      )

Namun, seperti yang disarankan @marc_s dalam komentar di Pertanyaan, NVARCHAR(MAX) lebih disukai karena semua fungsi string bekerja dengannya (dan TEXT , NTEXT , dan IMAGE tipe data telah ditinggalkan pada SQL Server 2005). Anda bisa lakukan konversi sebaris seperti:

WHERE CONVERT(NVARCHAR(MAX), someNtext) IN (N'asd', N'asd1')

tetapi kemungkinan itu tidak akan berfungsi sebaik menggunakan LIKE klausa dengan OR kondisi.

Harap diperhatikan: Saat bekerja dengan NTEXT / NVARCHAR / NCHAR / XML data, yang terbaik adalah selalu awalan string literal dengan huruf besar "N". Tidak melakukannya dapat mengakibatkan hilangnya data untuk karakter apa pun yang tidak didukung oleh halaman kode yang terkait dengan susunan default database.

Untuk informasi lebih lanjut tentang bekerja dengan collations / encodings / Unicode / string secara umum di SQL Server, silakan kunjungi:https://Collations. Info/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa jenis tunggu PAGEIOLATCH_SH di SQL Server?

  2. Hapus catatan duplikat dari tabel SQL tanpa kunci utama

  3. Tabel Temp SQL Server dan Penyatuan Koneksi

  4. Hapus Server Tertaut di SQL Server menggunakan T-SQL

  5. iterasi data XML di sql server 2005