Tôi có một cột VARCHAR (100) trong một bảng có chứa kết hợp các số nguyên (dưới dạng chuỗi) và các chuỗi không phải số nguyên. Ví dụ.SQL Server 2005 Chuyển đổi VARCHAR thành INT nhưng mặc định trên loại không hợp lệ
| dimension varchar(100) |
| '5' |
| '17' |
| '3' |
| 'Pyramids' |
| 'Western Bypass' |
| '15' |
Làm cách nào để viết biểu thức, ví dụ: tổng hợp tất cả các giá trị là số nguyên hợp lệ? Nếu tôi cố gắng:
-- should return 5 + 17 + 3 + 15 = 40
SELECT
SUM(CONVERT(INT, dimension))
FROM
mytable
Tôi sẽ nhận được lỗi Conversion failed when converting the varchar value 'Pyramids' to data type int.
.
Có thử nghiệm nào tôi có thể sử dụng trong biểu thức của mình, giống như hàm ISNULL()
, cho phép tôi chỉ định giá trị mặc định nếu trường không phải là số không?
Perfect! Cảm ơn bạn! 'ISNUMERIC ('- 1.44')' và 'ISNUMERIC ('12')' trả về 1 trong khi 'ISNUMERIC ('foobar')' return 0. Chỉ cần những gì tôi cần. –