Oracle 列 table 计数 - 子选择
Oracle Column table Count - Sub-Selection
我真的只想要 SQL 查询中表中的列数,但不知何故我无法得到正确的结果。有人知道我做错了什么吗?
select count(*) from user_tab_columns where table_name='tablename' //works and gives me the number of columns
select
TABLE_NAME,
NUM_ROWS,
(select count(*) from user_tab_columns where table_name=TABLE_NAME) as Test
from user_tables
哈哈,看这个:
where table_name=TABLE_NAME
这永远是正确的,因为 table 名字就是 table 名字。
这是具有限定列名称的查询:
select
table_name,
num_rows,
(select count(*) from user_tab_columns tc where tc.table_name = t.table_name) as test
from user_tables t;
作为替代方案,您可以聚合整个查询:
select t.table_name
, num_rows
, count(*) as num_columns
from user_tables t
join user_tab_columns c on c.table_name = t.table_name
group by t.table_name, t.num_rows
order by 1;
我真的只想要 SQL 查询中表中的列数,但不知何故我无法得到正确的结果。有人知道我做错了什么吗?
select count(*) from user_tab_columns where table_name='tablename' //works and gives me the number of columns
select
TABLE_NAME,
NUM_ROWS,
(select count(*) from user_tab_columns where table_name=TABLE_NAME) as Test
from user_tables
哈哈,看这个:
where table_name=TABLE_NAME
这永远是正确的,因为 table 名字就是 table 名字。
这是具有限定列名称的查询:
select
table_name,
num_rows,
(select count(*) from user_tab_columns tc where tc.table_name = t.table_name) as test
from user_tables t;
作为替代方案,您可以聚合整个查询:
select t.table_name
, num_rows
, count(*) as num_columns
from user_tables t
join user_tab_columns c on c.table_name = t.table_name
group by t.table_name, t.num_rows
order by 1;