фиктивное значение sqlite в выводе select в пустой таблице

#sqlite

Вопрос:

У меня есть база данных sqlite с этой таблицей примеров:

 CREATE TABLE PROVA ( c1 TEXT NOT NULL UNIQUE, c2 TEXT NOT NULL, c3 TEXT NOT NULL );  

Эта таблица будет пустой в определенное время (например, во время инициализации), и мне нужен запрос, который может возвращать такой вывод без необходимости указывать имя столбцов (фиктивное значение для каждого столбца).

 c1 c2 c3 -------- -------- -------- dummy dummy dummy  

Ответ №1:

Мы могли бы использовать здесь трюк профсоюза с помощью RANK :

 WITH cte AS (  SELECT c1, c2, c3, 1 AS pos FROM PROVA  UNION ALL  SELECT 'dummy', 'dummy', 'dummy', 2 ), cte2 AS (  SELECT c1, c2, c3, RANK() OVER (ORDER BY pos) rn  FROM cte )  SELECT c1, c2, c3 FROM cte2 WHERE rn = 1;  

Комментарии:

1. столбец таблицы может быть переменным, и я не могу указать его в инструкции select

2. Тогда, возможно, не будет никакого способа удовлетворить ваши требования.

3. Вот чего я боюсь, потому что перед тем, как подать заявление, я провел кое-какие исследования. Спасибо вам за ваши усилия!

4. @Tom Самая большая проблема в том, что в вашей таблице на самом деле нет dummy строки. Таким образом, первый CTE в моем ответе в той или иной форме в принципе неизбежен. После создания фиктивных данных может потребоваться несколько действий.

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