Trong SQL Server, bạn có thể sử dụng ISNUMERIC()
để tìm hiểu xem một biểu thức có phải là số hay không.
Hàm trả về 1 nếu biểu thức là số và 0 nếu không phải.
Để sử dụng hàm này, chỉ cần chuyển giá trị / biểu thức cho hàm trong khi gọi hàm.
Ví dụ 1 - Biểu thức số
Dưới đây là một ví dụ để chứng minh điều gì sẽ xảy ra khi bạn chuyển một biểu thức số vào hàm này.
SELECT ISNUMERIC(250) AS Result;
Kết quả:
+----------+ | Result | |----------| | 1 | +----------+
Trong trường hợp này, giá trị là số và kết quả là 1.
Chúng tôi nhận được cùng một kết quả ngay cả khi giá trị được cung cấp dưới dạng một chuỗi (được đặt trong dấu ngoặc kép).
SELECT ISNUMERIC('250') AS Result;
Kết quả:
+----------+ | Result | |----------| | 1 | +----------+
Ví dụ 2 - Biểu thức không phải dạng số
Đây là những gì sẽ xảy ra khi giá trị không số.
SELECT ISNUMERIC('Hey!') AS Result;
Kết quả:
+----------+ | Result | |----------| | 0 | +----------+
Ví dụ 3 - Ví dụ về Cơ sở dữ liệu
Đây là một ví dụ về việc sử dụng ISNUMERIC()
trong một WHERE
mệnh đề khi truy vấn cơ sở dữ liệu:
USE WideWorldImportersDW; SELECT COUNT(*) AS [Count] FROM Dimension.Customer WHERE ISNUMERIC([Postal Code]) = 1;
Kết quả:
+---------+ | Count | |---------| | 402 | +---------+
Điều này trả về tổng số của tất cả các hàng có mã bưu chính dạng số.
Kết quả không mong muốn? Khi không phải là số là số
Một số ký tự được coi là số, ngay cả khi chúng không phải là số. Đây là điều bạn cần lưu ý khi sử dụng chức năng này, nếu không bạn có thể nhận được kết quả không như mong đợi.
Xem các ký tự không phải số trả về số dương khi sử dụng ISNUMERIC()
để được giải thích và ví dụ.