在postgres中设置sql中的默认第一行

时间:2015-05-21 09:14:16

标签: sql postgresql

SELECT * FROM MY_TABLE;

CLOUMN_NAME
1st
2nd
3rd

运行此查询时获取输出。

我需要 默认值为'请选择'作为第一行总是 偶数列保存结果集的空值或空值。

已过滤的结果

CLOUMN_NAME
Please Select
1st
2nd
3rd

提前致谢。

3 个答案:

答案 0 :(得分:1)

尝试使用union all,如下所示

SELECT 'Please Select' as CLOUMN_NAME 
union all
SELECT cast(CLOUMN_NAME as varchar) FROM MY_TABLE;

我不确定哪种类型为CLOUMN_NAME但应该是string类型,因为在第一次查询中我们会返回此类型。

答案 1 :(得分:0)

select 'please select' col_name
union all
select col_name::text FROM MY_TABLE;

编辑:根据this评论

在您的情况下,您需要在第二个 选择语句中使用order by

select 'please select' col_name 
union all
(select col_name::text FROM MY_TABLE order by 1)

sqlfiddle - demo

如果该列不是MY_TABLEText

,则需要将该表格中的varchar)转换为文本

答案 2 :(得分:0)

如果你想要一个稳定的排序,你需要某种标准来区分"第一个"来自"真实"的:

select column_name
from (
  select 'please select' as column_name, 0 as sort_order
  union all
  select column_name, 1 as sort_order
  FROM MY_TABLE
) t
order by sort_order;

请注意,在这种情况下,实际数据的排序顺序是未定义的,因为表中的所有行都是相同的" sort_order"值。如果你是希望按字母顺序排序实际行,您可以通过以下方式将显示列添加到订单:`order by sort_order,column_name。

以上假设my_table.column_name是字符数据类型。如果不是,你需要一些类型的铸造。