如何使用SQL计算表中的列数?

use*_*654 18 sql oracle

如何使用SQL计算表中的列数?

我正在使用Oracle 11g

请帮忙.吨.

Vik*_*ram 33

select count(*) 
from user_tab_columns
where table_name='MYTABLE' --use upper case
Run Code Online (Sandbox Code Playgroud)

而不是大写,你可以使用较低的功能.例如:从user_tab_columns中选择count(*),其中lower(table_name)='table_name';

  • 它工作但表格名称区分大小写. (4认同)

Ari*_*ion 8

也许是这样的:

SELECT count(*) FROM user_tab_columns WHERE table_name = 'FOO'
Run Code Online (Sandbox Code Playgroud)

这将计算表FOO中的列数

你也可以

select count(*) from all_tab_columns where owner='BAR' and table_name='FOO';
Run Code Online (Sandbox Code Playgroud)

所有者是架构,并注意表名是大写的


Ray*_*y K 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; 
Run Code Online (Sandbox Code Playgroud)