Как получить десятичную точку после первых 2 цифр? - PullRequest
0 голосов
/ 08 мая 2019

Я получаю данные как 123456 или 12.3456 в базе данных, используя ssis. Я хочу преобразовать все данные в данном столбце, например 12.3456, кто-нибудь может помочь здесь?

Ответы [ 3 ]

0 голосов
/ 08 мая 2019

Что-то вроде:

(case when value > 100 then value / 10000.0
      else value
 end)
0 голосов
/ 11 мая 2019

Добавить преобразование производного столбца со следующим выражением:

Проверьте, является ли третья цифра разделителем (точка), если это так, оставьте значение столбца, так как оно иначе, преобразуйте значение в строку и добавьте разделитель к третьей цифре

SUBSTRING((DT_WSTR,50)[SourceColumn],3,1) == "." 
? (DT_DECIMAL,10)[SourceColumn] 
: (DT_DECIMAL,10)(LEFT((DT_WSTR,50)[SourceColumn],2) + "." + SUBSTRING((DT_WSTR,50)[SourceColumn],3,LEN((DT_WSTR,50)[SourceColumn] - 2)))

Примечание. Вы можете удалить приведение типов, так как они добавлены, потому что вы ничего не предоставили о типе данных столбца

0 голосов
/ 08 мая 2019

Если ваша цель - ограничить каждое значение только двумя десятичными знаками, используйте функцию округления в качестве выражения в преобразовании производного столбца.

ROUND(((DT_NUMERIC)(SourceValue)), 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...