Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

3 cách trả về hàng chứa ký tự chữ và số trong SQL Server

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        |
+--------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phiên bản phụ trợ không được hỗ trợ để thiết kế sơ đồ hoặc bảng cơ sở dữ liệu

  2. VỚI CHECK ADD CONSTRAINT, sau đó là CHECK CONSTRAINT so với ADD CONSTRAINT

  3. Giới thiệu tính năng mới - Phân tích bế tắc

  4. Tại sao tham gia bên trái t-sql của tôi không hoạt động?

  5. Bắt Hibernate và SQL Server để chơi tốt với VARCHAR và NVARCHAR