Berikut adalah tiga contoh mengembalikan baris yang berisi karakter alfanumerik di SQL Server.
Karakter alfanumerik adalah karakter alfabet dan numerik.
Contoh Data
Misalkan kita memiliki tabel berikut:
CREATE TABLE t1 (
c1 varchar(255) NULL
);
INSERT INTO t1 VALUES
('Music'),
('Live Music'),
('Café'),
('Café Del Mar'),
('100 Cafés'),
('example@sqldat.com'),
('1 + 1'),
('()'),
('example@sqldat.com#&()–[{}]:;'',?/*'),
('`~$^+=<>“'),
('$1.50'),
('Player 456'),
('007'),
(null),
(''),
('é'),
('É'),
('é 123'),
('ø'),
('ø 123');
SELECT c1 FROM t1; Hasil:
+----------------------+
| c1 |
+----------------------+
| Music |
| Live Music |
| Café |
| Café Del Mar |
| 100 Cafés |
| example@sqldat.com |
| 1 + 1 |
| () |
| example@sqldat.com#&()–[{}]:;',?/* |
| `~$^+=<>“ |
| $1.50 |
| Player 456 |
| 007 |
| NULL |
| |
| é |
| É |
| é 123 |
| ø |
| ø 123 |
+----------------------+ Contoh 1:Baris Berisi Data Alfanumerik
Kode berikut mengembalikan baris yang berisi karakter alfanumerik (dan mungkin juga berisi karakter non-alfanumerik):
SELECT c1 FROM t1
WHERE c1 LIKE '%[a-zA-Z0-9]%'; Hasil:
+-------------------+ | c1 | |-------------------| | Music | | Live Music | | Café | | Café Del Mar | | 100 Cafés | | example@sqldat.com | | 1 + 1 | | $1.50 | | Player 456 | | 007 | | é | | É | | é 123 | | ø | | ø 123 | +-------------------+
Contoh 2:Baris HANYA Berisi Data Alfanumerik
Kode berikut mengembalikan baris yang hanya berisi karakter alfanumerik:
SELECT c1 FROM t1
WHERE c1 NOT LIKE '%[^a-zA-Z0-9]%'
AND c1 LIKE '%[a-zA-Z0-9]%'; Hasil:
+-------+ | c1 | |-------| | Music | | Café | | 007 | | é | | É | | ø | +-------+
Spasi dianggap non-alfanumerik. Kami dapat menyertakan spasi dengan menyesuaikan kode sebagai berikut:
SELECT c1 FROM t1
WHERE c1 NOT LIKE '%[^a-zA-Z0-9 ]%'
AND c1 LIKE '%[a-zA-Z0-9 ]%'; Hasil:
+--------------+ | c1 | |--------------| | Music | | Live Music | | Café | | Café Del Mar | | 100 Cafés | | Player 456 | | 007 | | é | | É | | é 123 | | ø | | ø 123 | +--------------+
Contoh 3:Metode Alternatif
Sebagai alternatif, kita dapat menggunakan PATINDEX() berfungsi untuk mencapai hasil yang sama.
Kode berikut mengembalikan baris yang hanya berisi karakter alfanumerik:
SELECT c1 FROM t1
WHERE PATINDEX('%[^0-9a-zA-Z]%', c1) = 0
AND PATINDEX('%[a-zA-Z0-9]%', c1) > 0; Hasil:
+-------+ | c1 | |-------| | Music | | Café | | 007 | | é | | É | | ø | +-------+
Dan dengan spasi:
SELECT c1 FROM t1
WHERE PATINDEX('%[^0-9a-zA-Z ]%', c1) = 0
AND PATINDEX('%[a-zA-Z0-9 ]%', c1) > 0; Hasil:
+--------------+ | c1 | |--------------| | Music | | Live Music | | Café | | Café Del Mar | | 100 Cafés | | Player 456 | | 007 | | é | | É | | é 123 | | ø | | ø 123 | +--------------+