以下查询显示,
我找不到关于这个功能的文档,有吗?
select *
与connect by
和left join
结合使用时不会返回所有列,而只返回这些条件中使用的列。
对于我来说,这种行为很有用,因为在发布中不应使用select *
,但请求数据时很有用。with t1 as (
select 1 id, 0 parent, 'ROOT' name from dual
union all
select 2 id, 1 parent, 'CHILD-1' name from dual
union all
select 3 id, 1 parent, 'CHILD-2' name from dual
), t2 as (
select 1 t1id, 'node' special from dual
)
select * from t1
left join t2 on t2.t1id=t1.id
start with id = 2
connect by prior parent = id;
相比其他查询,此查询仅返回指定的列。
select * from t1
start with id = 2
connect by prior parent = id;
select * from t1
left join t2 on t2.t1id=t1.id;
我找不到关于这个功能的文档,有吗?
SELECT t1.*, t2.*
可以正常工作,但不知道为什么SELECT *
不行。 - MT0WHERE name IS NOT NULL AND ( special IS NULL OR special IS NOT NULL )
将意味着这些列出现在SELECT *
中。 - MT0