Mam kolumnę varchar (100) w tabeli, która zawiera kombinację liczb całkowitych (jako ciągi) i niecałkowitych ciągów. Na przykład.SQL Server 2005 Konwertuj VARCHAR na INT, ale domyślnie na nieprawidłowy typ
| dimension varchar(100) |
| '5' |
| '17' |
| '3' |
| 'Pyramids' |
| 'Western Bypass' |
| '15' |
Jak napisać wyrażenie do np. podsumować wszystkie wartości, które są poprawnymi liczbami całkowitymi? Jeśli miałbym spróbować:
-- should return 5 + 17 + 3 + 15 = 40
SELECT
SUM(CONVERT(INT, dimension))
FROM
mytable
Zostałby wyświetlony błąd Conversion failed when converting the varchar value 'Pyramids' to data type int.
.
Czy istnieje test, którego można użyć w moim wyrażeniu, podobnie jak funkcja ISNULL()
, która pozwala mi określić wartość domyślną, jeśli pole nie jest liczbą?
Perfect! Dziękuję Ci! 'ISNUMERIC ('- 1.44')' i 'ISNUMERIC ('12')' zwracają 1, podczas gdy 'ISNUMERIC ('foobar')' return 0. Właśnie to, czego potrzebowałem. –