Dưới đây là ba ví dụ về trả về các hàng có chứa các ký tự chữ và số trong SQL Server.
Các ký tự chữ và số là các ký tự chữ và số.
Dữ liệu Mẫu
Giả sử chúng ta có bảng sau:
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;
Kết quả:
+----------------------+ | 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 | +----------------------+
Ví dụ 1:Hàng Chứa Dữ liệu Chữ và Số
Đoạn mã sau trả về các hàng có chứa các ký tự chữ và số (và cũng có thể chứa các ký tự không phải chữ và số):
SELECT c1 FROM t1
WHERE c1 LIKE '%[a-zA-Z0-9]%';
Kết quả:
+-------------------+ | c1 | |-------------------| | Music | | Live Music | | Café | | Café Del Mar | | 100 Cafés | | [email protected] | | 1 + 1 | | $1.50 | | Player 456 | | 007 | | é | | É | | é 123 | | ø | | ø 123 | +-------------------+
Ví dụ 2:Hàng CHỈ Chứa Dữ liệu Chữ và Số
Đoạn mã sau trả về các hàng chỉ chứa các ký tự chữ và số:
SELECT c1 FROM t1
WHERE c1 NOT LIKE '%[^a-zA-Z0-9 ]%'
AND c1 LIKE '%[a-zA-Z0-9 ]%';
Kết quả:
+-------+ | c1 | |-------| | Music | | Café | | 007 | | é | | É | | ø | +-------+
Dấu cách được coi là không phải chữ và số. Chúng tôi có thể bao gồm khoảng trắng bằng cách điều chỉnh mã như sau:
SELECT c1 FROM t1
WHERE c1 NOT LIKE '%[^a-zA-Z0-9 ]%'
AND c1 LIKE '%[a-zA-Z0-9 ]%';
Kết quả:
+--------------+ | c1 | |--------------| | Music | | Live Music | | Café | | Café Del Mar | | 100 Cafés | | Player 456 | | 007 | | é | | É | | é 123 | | ø | | ø 123 | +--------------+
Ví dụ 3:Một phương pháp thay thế
Ngoài ra, chúng ta có thể sử dụng PATINDEX()
để đạt được cùng một kết quả.
Đoạn mã sau trả về các hàng chỉ chứa các ký tự chữ và số:
SELECT c1 FROM t1
WHERE PATINDEX('%[^0-9a-zA-Z ]%', c1) = 0
AND PATINDEX('%[a-zA-Z0-9 ]%', c1) > 0;
Kết quả:
+-------+ | c1 | |-------| | Music | | Café | | 007 | | é | | É | | ø | +-------+
Và với dấu cách:
SELECT c1 FROM t1
WHERE PATINDEX('%[^0-9a-zA-Z ]%', c1) = 0
AND PATINDEX('%[a-zA-Z0-9 ]%', c1) > 0;
Kết quả:
+--------------+ | c1 | |--------------| | Music | | Live Music | | Café | | Café Del Mar | | 100 Cafés | | Player 456 | | 007 | | é | | É | | é 123 | | ø | | ø 123 | +--------------+