Попытка запроса базы данных SQL и необходимо преобразовать столбец для сортировки в Excel
До того, как кто-то кричит, да, я знаю, глупо, что в базе данных, на которую я ссылаюсь, хранятся числа, хранящиеся в виде varchars, но я ничего не могу с этим поделать. По сути, у меня есть столбец, который в основном представляет собой целые числа, хранящиеся в виде varchar, но есть некоторые значения с десятичными знаками, которые мне нужно сохранить при преобразовании всего столбца в некоторую числовую форму, которую я могу правильно отсортировать позже. Если я просто выберу данные как они сортируются, как: 1, 10, 11, 12, 13, 2, 2.1, 3 И мне нужно, чтобы они были 1, 2, 2.1, 3, 10, 11, 12, 13, но Мне нужно сохранить различие между 2 и 2,1 или 2,01. Никогда не должно быть числа с более чем двумя цифрами до или после десятичных знаков. Я пробовал Convert(Decimal, column1) AS 'Column_Name', но он превратил все 2.1 в просто 2, так что имел 1, 2, 2, 3 и т. Д. Мысли?
1 ответ
Convert(Decimal, column1) - это то же самое, что Convert(Decimal(M,0), column1), где M - это число, зависящее от операционной системы, однако 0 означает, что никакие цифры справа от десятичной точки не будут сохранены. Вместо этого используйте Convert(Decimal(X,2), column1), где X - достаточно большое число для обработки чисел в столбце.