SQLServerで外字を含むレコードを抽出する方法
下記の手法で検査対象項目に外字を含むレコードを抽出します。
■検査対象項目のデータ型が nchar・nvarcharの場合(UNICODEの場合)
■検査対象項目のデータ型が char・varcharの場合(Shift_JISの場合)
⇒ 一旦nvarcharに変換してから比較する
- Transact-SQLのLIKEキーワードは条件パターンに正規表現を使用できる
- データ型がnvarcharの場合はUNICODEの外字コードを、varcharの場合はShift_JISの外字コードをそれぞれ指定する必要がある
■検査対象項目のデータ型が nchar・nvarcharの場合(UNICODEの場合)
where [検査対象項目] like '%[' + nchar(0xE000) + '-' + nchar(0xF8FF) + ']%'
■検査対象項目のデータ型が char・varcharの場合(Shift_JISの場合)
⇒ 一旦nvarcharに変換してから比較する
where cast([検査対象項目] as nvarchar) like '%[' + nchar(0xE000) + '-' + nchar(0xF8FF) + ']%'
where convert(nvarchar, [検査対象項目]) like '%[' + nchar(0xE000) + '-' + nchar(0xF8FF) + ']%'