如何使用SQL计算表中的列数?
我正在使用Oracle 11g
请帮忙。 吨。
答案 0 :(得分:34)
select count(*)
from user_tab_columns
where table_name='MYTABLE' --use upper case
您可以使用较低的功能而不是大写。 例如: 从user_tab_columns中选择count(*),其中lower(table_name)='table_name';
答案 1 :(得分:7)
也许是这样的:
SELECT count(*) FROM user_tab_columns WHERE table_name = 'FOO'
这将计算表格FOO
中的列数你也可以
select count(*) from all_tab_columns where owner='BAR' and table_name='FOO';
其中所有者是架构,请注意表名称是大写
答案 2 :(得分:6)
老问题 - 但我最近需要这个以及行计数...这里是两个查询 - 按行数desc排序:
SELECT t.owner,
t.table_name,
t.num_rows,
Count(*)
FROM all_tables t
LEFT JOIN all_tab_columns c
ON t.table_name = c.table_name
WHERE num_rows IS NOT NULL
GROUP BY t.owner,
t.table_name,
t.num_rows
ORDER BY t.num_rows DESC;