現在、SQL_Latin1_General_CP1_CI_AI照合でSQL Server 2016を使用しています。期待どおり、照合のアクセントを区別しないオプションのため、文字eの照会は値e、e、e、e、eなどと一致します。ただし、 '(U + 0027)を含むクエリはa'(U + 2019)を含む値と一致しません。このケースが一致する場所に照合が存在するかどうかを知りたいのですが、入力するのが簡単だからキーストローク「Alt-0146」です。異なるアポストロフィを一致させるSQL Serverの照合オプションがありますか?
1
A
答えて
2
いいえ、私は確信していません。ここで重要なのは、2つの文字が異なることです(類似していますが)。アクセントでは、eとêはまだ両方ともe(ただ1つはアクセントあり)です。これにより、たとえばSELECT * FROM Games WHERE [Name] LIKE 'Pokémon%';
などの検索を行い、Pokemon
の返信を含む行が残っています(ユーザーはアクセントを使用していないため、P)。
私が示唆できる最も良いことは、両方の行が返されるようにREPLACE
(少なくともWHERE
句で)を使用することです。しかし、それはおそらく高価になるでしょう。
問題の列がわかっている場合は、PERSISTED
Computed Columnをそのテーブルに追加することができます。その後、あなたはWHERE
句でその列を使用できますが、元の列を表示します。ような何か:
USE Sandbox;
--Create Sample table and data
CREATE TABLE Sample (String varchar(500));
INSERT INTO Sample
VALUES ('This is a string that does not contain either apostrophe'),
('Where as this string, isn''t without at least one'),
('’I have one of them as well’'),
('’Well, I''m going to use both’');
GO
--First attempt (without the column)
SELECT String
FROM Sample
WHERE String LIKE '%''%'; --Only returns 2 of the rows
GO
--Create a PERSISTED Column
ALTER TABLE Sample ADD StringRplc AS REPLACE(String,'’','''') PERSISTED;
GO
--Second attempt
SELECT String
FROM Sample
WHERE StringRplc LIKE '%''%'; --Returns 3 rows
GO
--Clean up
DROP TABLE Sample;
GO
0
他の答えは正しいです。そのような照合はありません。以下で簡単に確認できます。
DECLARE @dynSql NVARCHAR(MAX) =
'SELECT * FROM (' +
(
SELECT SUBSTRING(
(
SELECT ' UNION ALL SELECT ''' + name + ''' AS name, IIF(NCHAR(0x0027) = NCHAR(0x2019) COLLATE ' + name + ', 1,0) AS Equal'
FROM sys.fn_helpcollations()
FOR XML PATH('')
), 12, 0+ 0x7fffffff)
)
+ ') t
ORDER BY Equal, name';
PRINT @dynSql;
EXEC (@dynSql);
関連する問題
- 1. Artifactory:データベースの照合順序がSQL Serverインスタンスと異なる可能性はありますか?
- 2. informixデータベースとSQL Serverを同期させるオプションはありますか?
- 3. Tableau 9.3参照テーブルと値を一致させる必要があります
- 4. SQL Server上のテーブルで異なるユーザーが異なる行を表示する状況はありますか?
- 5. はアポストロフィを正規表現に一致させる
- 6. 出力を一致させる必要があります
- 7. Sql Server - pfclnt.dllがありませんか?
- 8. SQL SERVERでマージテーブルが一致しない列を自動インクリメントする方法はありますか?
- 9. Eclipseで正規表現の照合を一致させる
- 10. 2つの異なるアレイの行を一致させる
- 11. SQL Serverの照合順序、Management Studioの結果は、asp.net異なるが
- 12. SQL - 一致するIDと異なる数の行を結合する
- 13. SQL Serverのエラーログファイル(一部の日付がありません)
- 14. SQL - 同じテーブル内の異なる列に同じ値を一致させる
- 15. SQL Server 2008の:PASS一致するレコード
- 16. カーソルを使用しないでSQL Serverのコードを一致させる
- 17. SQL Server 2012では、結合されたプライマリキーは一意である必要がありますか?
- 18. SQL Server Compact 4.0プロバイダがEFの一覧にありません
- 19. SQL Serverの一致/合計の合計を選択
- 20. SQL Serverの日付形式が一致しません
- 21. SQL:同じテーブルに複数の一致がありますか?
- 22. 異なるサインの座標を一致させるR
- 23. 異なるレコードの2つのフィールドを一致させるMongoose
- 24. Excel:2つの異なるセルが一致する場合にセルを参照します。
- 25. コードページを照合する(SQL Server)
- 26. 異なるテーブル(配列)のリーグとマッチを一致させる
- 27. SQL Server:列プレフィックスがテーブル名と一致しません
- 28. EF6 with SQL ServerとMYSQL、データベースに不一致データ型あり
- 29. SQL Serverにバックアップがありません
- 30. Apache Solrの照合結果が一致しません