PostgreSQL:JOIN SELECT 和 ORDER 隐藏
Posted
技术标签:
【中文标题】PostgreSQL:JOIN SELECT 和 ORDER 隐藏【英文标题】:PostgreSQ: JOIN SELECT and ORDER hidden 【发布时间】:2020-07-02 17:02:16 【问题描述】:数据库表“myTable”具有字段“category”;
SELECT DISTINCT "category" FROM "myTable" ORDER BY "category" ASC;
A-Class
T-Class
Z-Class
好的,现在我必须添加一行“未定义”,例如
SELECT DISTINCT "category" FROM "myTable"
UNION SELECT '>undefined<'
ORDER BY "category" ASC;
A-Class
T-Class
>undefined<
Z-Class
我需要“未定义”作为列表中的第一个条目,并尝试了几个字符,例如 .,-_!首先,但所有内容都被忽略,并以 u 为顺序。
是否有任何简单的选项来实现这一点,而不在查询中显示第二列?
【问题讨论】:
【参考方案1】:只需使用子查询或 CTE:
with sortme as (
select distinct category, category as category_sort
from "myTable"
union
select 'undefined', ''
)
select category
from sortme
order by category_sort;
【讨论】:
谢谢你,完美!!【参考方案2】:你可以输入
order by case "category" when 'undefined' then 1 else 0 end, "category";
在undefined
之前加上>
等特殊字符,你也可以cast category to bytea or use explicit collation。
【讨论】:
谢谢,逐案排序是一个很好的建议,而且更短。不幸的是,在我的某些情况下,要排序的文本是另一个表的子选择,我无法让它与联盟。以上是关于PostgreSQL:JOIN SELECT 和 ORDER 隐藏的主要内容,如果未能解决你的问题,请参考以下文章
Oracle 在字符串上的 OUTER JOIN (+) - 迁移 PostgreSQL