假设我想编写一个SELECT
使用 a 的简单查询VIEW
:
CREATE TEMP VIEW people AS
SELECT
p.person_id
,p.full_name
,p.phone
FROM person p
ORDER BY p.last_name;
SELECT
p.*
,h.address
,h.appraisal
FROM people p
LEFT JOIN homes h
ON h.person_id = p.person_id
ORDER BY p.last_name, h.appraisal;
这里明显的问题是p.last_name
当我去执行 final 时不再可用ORDER BY
。
如何对最终查询进行排序,以便people
视图的原始序列遵循最终查询?
这里的简单解决方案是在视图中包含 p.last_name。我不想那样做——我在现实世界中的例子(要复杂得多)使这成为一个问题。
我过去对临时表做过类似的事情。例如,我使用创建表,CREATE TEMP TABLE testing WITH OIDS
然后执行一个ORDER BY testing.oid
以通过原始序列。
是否可以对视图做同样的事情?