SQLServerで英数字以外の文字を含む行を返す例を次に示します。
英数字以外の文字には、[email protected]#&()–[{}]:;',?/*
などの句読文字が含まれます。 および`~$^+=<>“
のような記号 、およびスペースやタブ文字などの空白文字。
サンプルデータ
次の表があるとします。
CREATE TABLE t1 (
c1 varchar(255) NULL
);
INSERT INTO t1 VALUES
('Music'),
('Live Music'),
('Café'),
('Café Del Mar'),
('100 Cafés'),
('[email protected]'),
('1 + 1'),
('()'),
('[email protected]#&()–[{}]:;'',?/*'),
('`~$^+=<>“'),
('$1.50'),
('Player 456'),
('007'),
(null),
(''),
('é'),
('É'),
('é 123'),
('ø'),
('ø 123');
SELECT c1 FROM t1;
結果:
+----------------------+ | c1 | +----------------------+ | Music | | Live Music | | Café | | Café Del Mar | | 100 Cafés | | [email protected] | | 1 + 1 | | () | | [email protected]#&()–[{}]:;',?/* | | `~$^+=<>“ | | $1.50 | | Player 456 | | 007 | | NULL | | | | é | | É | | é 123 | | ø | | ø 123 | +----------------------+
例1:行に英数字以外の文字のみが含まれている
英数字以外の文字のみを含む行を返すコードの例を次に示します。
SELECT c1 FROM t1
WHERE c1 NOT LIKE '%[a-zA-Z0-9]%';
結果:
+--------------------+ | c1 | |--------------------| | () | | [email protected]#&()–[{}]:;',?/* | | `~$^+=<>“ | | | +--------------------+
例2:行に英数字以外の文字が含まれている
英数字以外の文字を含むが、英数字を含む可能性のある行を返すコードの例を次に示します。
SELECT c1 FROM t1
WHERE c1 LIKE '%[^a-zA-Z0-9 ]%';
結果:
+--------------------+ | c1 | |--------------------| | Live Music | | Café Del Mar | | 100 Cafés | | [email protected] | | 1 + 1 | | () | | [email protected]#&()–[{}]:;',?/* | | `~$^+=<>“ | | $1.50 | | Player 456 | | é 123 | | ø 123 | +--------------------+
スペースを除外するには:
SELECT c1 FROM t1
WHERE c1 LIKE '%[^a-zA-Z0-9 ]%';
結果:
+--------------------+ | c1 | |--------------------| | [email protected] | | 1 + 1 | | () | | [email protected]#&()–[{}]:;',?/* | | `~$^+=<>“ | | $1.50 | +--------------------+