Выходные числа через запятую в результирующем наборе снежинок - PullRequest
1 голос
/ 29 мая 2020

Я работаю с SQL запросами в Snowflake. Я могу работать в браузере (chrome) или в SQLWorkbenchJ. Мне комфортно с обоими, но я предпочитаю браузер.

Я работаю с умеренно большими числами, вплоть до сотен миллиардов (10 ^ 8), поэтому было бы очень полезно, если бы я мог заставить программу печатать мои числа с разделением запятой для тысяч (например, 12 345 678 901,00 против 12345678901,00).

Я просмотрел документацию по моделям формата здесь https://docs.snowflake.com/en/sql-reference/sql-format-models.html но я не вижу возможности вывода в том стиле, который я ищу.

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

1 Ответ

1 голос
/ 29 мая 2020

Модели формата numeri c , похоже, удовлетворяют ваши потребности с помощью символов 9 (девять), , (запятая) и . (точка). Цитирование некоторых соответствующих частей из документации:

9: позиция для цифры; начальные / конечные нули заменяются пробелами.

0: позиция для цифры; начальные / конечные нули печатаются явно.

. (точка): разделитель десятичной дроби; всегда печатается как точка.

, (запятая): Di git разделитель групп; печатается как запятая или пробел.

[...]

Разделитель групп di git , (запятая) или G приводит к тому, что соответствующий символ разделителя групп печатается, если число достаточно велико, чтобы цифры находились по обе стороны от разделителя групп. Пример модели формата, полезной для печати денежных сумм, будет 999 999,00.

Вот несколько адаптированных примеров, демонстрирующих требуемый формат:

SELECT to_varchar(123.21, '999,999,999,999.00');
SELECT to_varchar(12345.00, '999,999,999,999.00');
SELECT to_varchar(12345678, '999,999,999,999.00');
SELECT to_varchar(12345678901, '999,999,999,999.00');
SELECT to_varchar(12345678901.59, '999,999,999,999.00');
...