#postgresql #distinct #dynamic-sql #database-programming
Вопрос:
Postgresql условно включает distinct в запрос
Есть ли способ изменить запрос, например:
select distinct col1, col2
from our_schema.our_table
where (id = '1001')
Цель состоит в том, чтобы легко активировать/деактивировать ключевое слово distinct.
Очевидно, что можно было бы перенести это в такой комментарий, как:
select col1, col2 -- distinct
from our_schema.our_table
where (id = '1001')
Есть ли какой-нибудь простой способ сделать это в Postgresql?
Я видел «динамический SQL» в SSMS Microsoft, использующих язык TSQL. Есть ли что-то подобное для Postgresql? Или что-то еще проще?
Комментарии:
1. Какое условие вы хотели бы выполнить?
2. Кроме того, как/откуда вы выполняете этот запрос?
3. Условие состоит в том, чтобы использовать ключевое слово «отдельный». Я использую инструмент базы данных «dbeaver» в качестве рабочей среды.
Ответ №1:
Похоже, речь идет только об управлении кодом / построении строк SQL?
Вставьте разрыв строки после DISTINCT
. Единственное значение пробелов в SQL-это разделение токенов. Кроме этого, разрывы строк носят чисто косметический характер — за исключением стандартных комментариев, начинающихся с --
конца строки.
SELECT DISTINCT
col1, col2 ...
—>
SELECT -- DISTINCT
col1, col2 ...
Или даже:
SELECT
DISTINCT
col1, col2 ...
—>
SELECT
-- DISTINCT
col1, col2 ...
Или используйте комментарии блоков в стиле C: /* comment */
SELECT DISTINCT col1, col2 ...
—>
SELECT /*DISTINCT*/ col1, col2 ...