У меня есть большое количество карточных жетонов (16 цифр), загруженных из xml-файла в sql-сервер. Проблема заключается в том, что я рассматриваю их как выражение, образец ниже:Преобразование экспоненциального числа в sql
3.3733E+15
3.3737E+15
3.3737E+15
3.3737E+15
3.37391E+15
3.37391E+15
3.37398E+15
3.37453E+15
3.37468E+15
3.37468E+15
3.3747E+15
3.37486E+15
3.37486E+15
3.37567E+15
3.3759E+15
3.3759E+15
Любое предложение об изменении их на 16-значное число? Я попытался изменить тип данных, но получил ошибку "Conversion failed when converting the varchar value '3.37201E+15' to data type int"
Спасибо за помощь!
Edit:
@ X.L.Ant видеть мой код ниже. Я создаю эту таблицу из другой, которая просто вставляется в xml-файл. Может ли это вызвать ошибку, потому что некоторые строки пустые в столбце TOKEN?
CREATE TABLE MULTICURRENCY_CHECK
(
TOKEN varchar(255)
)
/*Merges all card tokens into 1 column, as in xml they are spread across different columns*/
INSERT INTO MULTICURRENCY_CHECK
(
TOKEN
)
SELECT no FROM gpstransactionsnew2
UNION ALL
SELECT no19 FROM gpstransactionsnew2
UNION ALL
SELECT no68 FROM gpstransactionsnew2
UNION ALL
SELECT no93 FROM gpstransactionsnew2
UNION ALL
SELECT no107 FROM gpstransactionsnew2
UNION ALL
SELECT no121 FROM gpstransactionsnew2
SELECT REPLACE(TOKEN, 'OW1', ' ')
FROM MULTICURRENCY_CHECK
/*Converts exponential expression to number*/
SELECT CONVERT(numeric(16,0), CAST(TOKEN AS FLOAT))
FROM MULTICURRENCY_CHECK
Я знаю это, но он преобразует только 1 номер вправо? Я хочу преобразовать все (более 20 тыс. Строк) – Lukas
@Lukas, что вы подразумеваете под 'it будет конвертировать только 1 номер' ... он думает, что это должно работать –
Ошибка: Ошибка 8114: Ошибка преобразования типа данных varchar в float. – Lukas