Это похоже на предыдущий вопрос MSSQL: изменить тип столбца с числами с varchar на int , за исключением того, что в этом случае не все исходные данные могут быть успешно преобразованы из varchar в int. В этих случаях я хочу, чтобы результат был NULL
.
Например, входящий набор значений в столбце varchar будет выглядеть так: {'123', '234', '345', 'A', '456'}
. После преобразования из varchar в int я хочу, чтобы столбец содержал значения {123, 234, 345, NULL, 456}
. На практике у меня будет около 99% успеха.
Хотя общее решение было бы идеальным, я использую SQL Server 2005 и мне нужно внести изменения в Transact SQL.
РЕДАКТИРОВАТЬ: IsNumeric
предложения действительно преодолеть часть пробела, но не являются полными. Например, если набор данных содержит числовые, но не целочисленные данные, исправление IsNumeric
не работает (и, похоже, IsInteger
). В частности, следующий набор не будет преобразовывать {'123.456', '$ 12'}, где они оба являются числовыми в соответствии с SQL Server IsNumeric
, но не будет преобразовывать в Int
.