【发布时间】:2017-07-26 08:20:27
【问题描述】:
我正在尝试进行一个查询,该查询返回一个表的所有列的名称,并且每个列的计数不同。我有超过 1400 个表要测试,其中一些表有 100 列,所以我无法想象一个一个列名。
我对 count distinct 部分有疑问,我想知道是否可以在子查询中执行 EXECUTE IMMEDIATE 之类的操作,如果没有,是否有其他解决方案?
这是我的实际查询:
SELECT
sc.name AS columnName
, ('SELECT COUNT(DISTINCT ' || sc.name || ') FROM MyTableName') AS nb_distinct_row
FROM dbo.syscolumns sc INNER JOIN sysobjects so
ON so.id = sc.id
AND so.name = 'MyTableName'
GROUP BY sc.name
这会返回好的子查询,但我不知道如何立即执行它? 我尝试过类似
, (SELECT count(distinct sc.name) from MyTableName) As nbDistinctRow
但是 'sc.name' 没有被解释,并且 count distinct 返回 1,所以这就是我尝试这种方式的原因。
我在 sybase IQ 数据库上工作
有人可以帮助我吗? 提前谢谢你。
【问题讨论】:
标签: sybase sqlanywhere sap-iq