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

Cách chỉ trả lại giá trị số trong SQL Server

Trong SQL Server, chúng ta có thể sử dụng ISNUMERIC() hàm để trả về giá trị số từ một cột.

Ngoài ra, chúng tôi có thể chạy một truy vấn riêng biệt để trả về tất cả các giá trị có chứa dữ liệu số.

Dữ liệu mẫu

Giả sử chúng ta tạo một bảng với varchar và chèn dữ liệu như sau:

DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (
    c1 varchar(255)
);

INSERT INTO t1 (c1) VALUES 
    ('0'),
    ('1'),
    ('+1'),
    ('-1'),
    ('+1'),
    ('00.00'),
    ('73.45'),
    ('+73.45'),
    ('-73.45'),
    ('.246'),
    ('-.34e7'),
    ('12.e-3'),
    ('1.2e+4'),
    ('a'),
    ('9afc'),
    ('e7'),
    ('+e0'),
    ('Ten'),
    ('5 Dollars');

SELECT * FROM t1;

Kết quả:

+-----------+
| c1        |
|-----------|
| 0         |
| 1         |
| +1        |
| -1        |
| +1        |
| 00.00     |
| 73.45     |
| +73.45    |
| -73.45    |
| .246      |
| -.34e7    |
| 12.e-3    |
| 1.2e+4    |
| a         |
| 9afc      |
| e7        |
| +e0       |
| Ten       |
| 5 Dollars |
+-----------+

Xem như đây là một varchar , nó chứa dữ liệu ký tự. Nó có thể chứa dữ liệu số, nhưng nó không được lưu trữ dưới dạng số. Do đó, cột có thể chứa cả dữ liệu dạng văn bản và dạng số. Các ví dụ sau kiểm tra cột này để tìm các giá trị số.

ISNUMERIC() Chức năng

SELECT c1
FROM t1
WHERE ISNUMERIC(c1) = 1;

Kết quả:

+--------+
| c1     |
|--------|
| 0      |
| 1      |
| +1     |
| -1     |
| +1     |
| 00.00  |
| 73.45  |
| +73.45 |
| -73.45 |
| .246   |
| -.34e7 |
| 12.e-3 |
| 1.2e+4 |
+--------+

Ở đây, tôi đã sử dụng ISNUMERIC() cùng với Equal To (= ) để trả về các giá trị là số. Hàm trả về 1 khi nó là số và 0 khi thì không.

Tìm giá trị chứa số

Chúng ta có thể sử dụng truy vấn sau để trả về tất cả các hàng có chứa giá trị số (ngay cả khi chúng cũng chứa các ký tự khác).

SELECT c1
FROM t1 
WHERE c1 LIKE '%[0-9]%';

Kết quả:

+-----------+
| c1        |
|-----------|
| 0         |
| 1         |
| +1        |
| -1        |
| +1        |
| 00.00     |
| 73.45     |
| +73.45    |
| -73.45    |
| .246      |
| -.34e7    |
| 12.e-3    |
| 1.2e+4    |
| 9afc      |
| e7        |
| +e0       |
| 5 Dollars |
+-----------+

Đây là một kết quả khác với ví dụ trước đó, bởi vì chúng tôi chỉ đơn giản là đang tìm kiếm tất cả các giá trị chứa bất kỳ dữ liệu số nào. Trong ví dụ trước, chúng tôi đang tìm kiếm những giá trị có dạng số.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 cách để xem liệu các tính năng không dùng nữa có còn được sử dụng trong phiên bản máy chủ SQL hay không

  2. SQL Server UNION - ORDER BY Behavior mặc định là gì

  3. Làm thế nào để loại bỏ khoảng trắng đầu và cuối trong SQL Server - TRIM ()

  4. Tập lệnh khoảng không quảng cáo thu thập SQL Server -3

  5. Lưu byte [] vào cơ sở dữ liệu SQL Server từ C #