sql >> データベース >  >> RDS >> Sqlserver

SQL Server:列が NTEXT の場合、IN ('asd') が機能しない

    IN list は、OR 条件の省略形です。 LIKE 節は NTEXT で動作します および TEXT 田畑。したがって、これら 2 つのアイデアを組み合わせてこれを行うことができます。

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

    ただし、@marc_s が質問のコメントで示唆したように、NVARCHAR(MAX) すべての文字列関数がそれで動作するため、優先されます (および TEXTNTEXT 、および IMAGE データ型は SQL Server 2005 で廃止されました)。 できる 次のようなインライン変換を行います:

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

    しかし、それは LIKE を使用した場合ほどうまく機能しない可能性があります OR を含む句

    注意: NTEXT を使用する場合 / NVARCHAR / NCHAR / XML 常に 文字列リテラルの前に大文字の「N」を付けます。そうしないと、データベースの既定の照合に関連付けられたコード ページでサポートされていない文字のデータが失われる可能性があります。

    SQL Server での照合/エンコーディング/Unicode/文字列全般の操作の詳細については、https://Collat​​ions.情報/



    1. SQL-あるフィールドで個別のレコードを選択し、別のフィールドからのレコードが最も多い

    2. Oracleシノニムが基になるテーブルに異なる数の行を返すのはなぜですか?

    3. freebsdスウェーデン語文字(åäö)にmysqlとphpを含むUTF-8

    4. MySQLはALTERTABLEクエリに対して非常に遅い