【发布时间】:2019-08-09 10:42:32
【问题描述】:
所以我主要有我需要的查询,但我注意到我仍然从第一个选择和第二个选择中得到重复。我认为使用 UNION 而不是 UNION ALL 会删除重复项,但是因为它们具有不同的序列号,所以它们不会被删除。如何在不添加不必要的 seq 列的情况下通过 select 语句对结果进行排序?
select 1 as seq, t.* from template t
WHERE status = 'ACTIVE' and t.title ~* '.*동\s*아\s*리\s*로\s*고\s*.*'
UNION
select 2 as seq, t.* from template t
WHERE status = 'ACTIVE' and t.title ~* any(array['.*동\s*아\s*리\s*로\s*고\s*.*'])
UNION select 3 as seq, t.* from template t WHERE status = 'ACTIVE'
order by seq asc
【问题讨论】:
-
没有重复,因为第一列在一个表中是 1,在另一个表中是 2。
标签: sql postgresql