Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何选择在一个查询中统计所有表,并在一个表中统计所有名称和数字?_Sql_Oracle_Aggregate Functions - Fatal编程技术网

Sql 如何选择在一个查询中统计所有表,并在一个表中统计所有名称和数字?

Sql 如何选择在一个查询中统计所有表,并在一个表中统计所有名称和数字?,sql,oracle,aggregate-functions,Sql,Oracle,Aggregate Functions,我有一个包含12个表的数据库。为了显示每个表中有多少数据,我想进行一次查询,在查询中我会收到一个表或一个带有表名及其计数的列表。这是我得到=D的程度。我不知道如何在列表中创建结果,也不知道如何显示相应的名称 我使用SQL开发人员 (SELECT COUNT(*) FROM CELL_CTRL_PARAMS_INFOS); (SELECT COUNT(*) FROM ERROR_INFO); (SELECT COUNT(*) FROM MDE_RESULTS); (SELECT C

我有一个包含12个表的数据库。为了显示每个表中有多少数据,我想进行一次查询,在查询中我会收到一个表或一个带有表名及其计数的列表。这是我得到=D的程度。我不知道如何在列表中创建结果,也不知道如何显示相应的名称

我使用SQL开发人员

  (SELECT COUNT(*) FROM CELL_CTRL_PARAMS_INFOS);
  (SELECT COUNT(*) FROM ERROR_INFO);
  (SELECT COUNT(*) FROM MDE_RESULTS);
  (SELECT COUNT(*) FROM PARAMETERS_INFO);
  (SELECT COUNT(*) FROM PART_RESULTS);
  (SELECT COUNT(*) FROM PRODUCTION_INFO);
  (SELECT COUNT(*) FROM STATION_INFO);
  (SELECT COUNT(*) FROM STATION_RESULTS);
  (SELECT COUNT(*) FROM TEST_INFO);
  (SELECT COUNT(*) FROM TEST_RESULTS);
  (SELECT COUNT(*) FROM X_PRODUCTION_INFO);
  (SELECT COUNT(*) FROM X_STATION_INFO);

只需将它们全部选中并给它们取别名

SELECT 
    (SELECT COUNT(*) FROM CELL_CTRL_PARAMS_INFOS) AS CellCtrlParamsInfosCount,
... etc.

只需将它们全部选中并给它们取别名

SELECT 
    (SELECT COUNT(*) FROM CELL_CTRL_PARAMS_INFOS) AS CellCtrlParamsInfosCount,
... etc.

另一种方法是创建动态SQL并将所有内容都放在一行中

declare @sql nvarchar(max)
select @sql = 'Select ' + 
                    STUFF((select ', (select count(*)  
                           from [' + t.name + ']) as [' + t.name + ']' 
                    from sys.tables t FOR XML PATH(''), TYPE ).value('.', 
                                    'NVARCHAR(MAX)'), 1, 1, '')

execute (@sql)

另一种方法是创建动态SQL并将所有内容都放在一行中

declare @sql nvarchar(max)
select @sql = 'Select ' + 
                    STUFF((select ', (select count(*)  
                           from [' + t.name + ']) as [' + t.name + ']' 
                    from sys.tables t FOR XML PATH(''), TYPE ).value('.', 
                                    'NVARCHAR(MAX)'), 1, 1, '')

execute (@sql)

+1:我在考虑在我的答案后面加上这样的标签。。。但我不想被打扰;o+1:我在考虑在我的答案末尾加上这样的标签。。。但我不想被打扰;o