Postgresql условно включает distinct в запрос

#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 ...