Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Server:IN ('asd') не работи, когато колоната е NTEXT

IN списъкът е само съкратено за ИЛИ условия. LIKE клаузата работи с NTEXT и TEXT полета. Така че можете да комбинирате тези две идеи, за да направите това:

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

Въпреки това, както @marc_s предложи в коментар по Въпроса, NVARCHAR(MAX) е за предпочитане, тъй като всички низови функции работят с него (и TEXT , NTEXT и IMAGE типовете данни са отхвърлени от SQL Server 2005). Вие можете направете вградено конвертиране като:

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

но вероятно това няма да работи толкова добре, колкото използването на LIKE клауза с OR условия.

Моля, обърнете внимание: Когато работите с NTEXT / NVARCHAR / NCHAR / XML данни, най-добре е да винаги префикс низови литерали с главна буква "N". Ако не го направите, това може да доведе до загуба на данни за всички знаци, които не се поддържат от кодовата страница, свързана с подреждането по подразбиране на базата данни.

За повече информация относно работата с съпоставки / кодировки / Unicode / низове като цяло в SQL Server, моля, посетете:https://Collations. Информация/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dynamic Pivot (ред към колони)

  2. LINQ към SQL:Твърде много използване на процесора:Какво се случва, когато има няколко потребители

  3. Премахнете SQL влизането дори докато сте влезли

  4. Използване на CASE изрази в SQL Server

  5. Как да вмъкнете текст с единични кавички sql server 2005