SQL表中的总数据

时间:2015-02-21 18:28:25

标签: sql

如果我在表中有2行和5列,并且当我运行SQL查询时,我应该输出10表,而不是表中的单元格。请帮我查询一下。

第二个问题:查询以查找一行中的数据。我需要两种类型的查询,第一种:查询应排除空值,Null值和secondquery应仅包含空值。 例如。一张表有10行和5列。在第一行中,数据存在于所有五列中。因此,对于第1行,我将计数为5.在第二行中,数据仅存在于4列中,最后一列没有数据,即它是空白的。因此它将给出计数同样假设如果第3行有4列数据,但任何列中的空值应该计为4。

请帮帮我

2 个答案:

答案 0 :(得分:0)

总“细胞”的数量很容易:

select count(*) * 5 from T; /* no way to count the columns dynamically */

其他人并不难:

select
    case when col1 is not null then 1 else 0 end +
    case when col2 is not null then 1 else 0 end + ... as NonNulls
    case when col1 <> '' then 1 else 0 end +
    case when col2 <> '' then 1 else 0 end + ... as NonNullNonEmpty
from T

我相信你想要逐行而不是整个表格聚合。用其他方式包裹sum()

如果由于某种原因要更改列数,则必须更改查询。

答案 1 :(得分:0)

这将给你总数。列:

从INFORMATION_SCHEMA.columns中选择count(*),其中TABLE_NAME ='YourTableName';

这就是你问题的完整解决方案:

选择count(*)*(从中选择count(*) INFORMATION_SCHEMA.columns其中TABLE_NAME ='youtablename')来自'yourtablename';