Приведенный ниже динамический запрос возвращает выходные данные числовых столбцов в научной нотации.
DECLARE @Cols VARCHAR(MAX) = (SELECT STUFF((
SELECT ',' +'['+ Description + ']' FROM @PermittedColumnIDs
DECLARE @Query NVARCHAR(MAX) = 'SELECT TOP 1000 '+ @Cols +' FROM ' + (SELECT ViewName FROM
@DynamicQueryProps) + ' FOR JSON AUTO';
EXECUTE sp_executesql @Query
Вывод JSON
Табличный вывод
Как упоминалось выше, табличное представление возвращает значение AWP
правильно, а представление JSON возвращает его с экспоненциальной записью. Как получить столбец JSON AWP
без Sc. обозначение.
Обратите внимание, что
- Необходимо сохранить числовое значение как числовое, не преобразовывая его в строку в результате JSON.
- Невозможно изменить формат отдельных столбцов, поскольку столбцы являются динамическими.
AWP
column — этоfloat
столбец. Какая информация хранится в таблице@PermittedColumnIDs
? - person Zhorov   schedule 05.05.2020CONVERT(numeric(x, y), Description) AS Description
при динамическом создании оператораSELECT
для каждого столбцаfloat
. Единственная часть документации о том, какFOR JSON
преобразовывает типы данных SQL Server в типы JSON, — это здесь и нет информации о формат, который используется для этого преобразования. - person Zhorov   schedule 05.05.2020float
будут преобразованы в числовые. - person Zhorov   schedule 05.05.2020DECLARE @Cols VARCHAR(MAX) = (SELECT STUFF(( SELECT ',' +'['+ s.Description + '] AS [' + REPLACE(s.Description, ' ', '') + ']' FROM @PermittedColumnIDs s ORDER BY s.ID FOR XML PATH('')),1, 1, ''))
Не могли бы вы показать мне, как применить приведенный выше сегмент кода здесь - person Harsha W   schedule 05.05.2020