在一个数据库学生表中,要分别统计男女生人数,用count()函数怎么实现啊

在一个数据库学生表中,要分别统计男女生人数,用count()函数怎么实现啊,第1张

加班加的累了 给你解决一下假设 你的数据库 有一个sex 字段表示‘男’或者‘女’, 表为 tabselect (case sex when '男' then select count(1) from tab end) 男生总数,(case sex when '女' then select count(1) from tab end) 女生总数from tab

Excel函数共包含11类,分别是数据库函数、日期与时间函数、工程函数、财务函数、信息函数、逻辑函数、查询和引用函数、数学和三角函数、统计函数、文本函数以及用户自定义函数。

1、数据库函数

当需要分析数据清单中的数值是否符合特定条件时,使用数据库工作表函数。例如,在一个包含销售信息的数据清单中,可以计算出所有销售数值大于1000且小于2500的行或记录的总数。

2、日期与时间函数

在公式中用来分析和处理日期值和时间值的函数。比如,DATE函数表示返回代表特定日期的系列数;DATEDIF函数表示计算两个日期之间的天数、月数或年数。

3、工程函数

用工程工作表函数用于工程分析。可分为三种类型:对复数进行处理的函数、在不同的数字系统间进行数值转换的函数、在不同的度量系统中进行数值转换的函数。

4、信息函数

用于编程语言中的函数。常用函数有:求和函数SUM、平均值函数AVERAGE、逻辑函数IF、快捷方式或链接创建函数HYPERLINK、计数函数COUNT等等。

5、逻辑函数

返回值为逻辑值true或逻辑值false的函数。true代表判断后的结果是真的,正确的,也可以用1表示;false代表判断后的结果是假的,错误的,也可以用0表示。

6、查询与引用函数

当需要在数据清单或表格中查找特定数值,或者需要查找某一单元格的引用时,可以使用该函数查询和引用工作表。

例如,如果需要在表格中查找与第一列中的值相匹配的数值,可以使用VLOOKUP工作表函数;如果需要确定数据清单中数值的位置,可以使用MATCH工作表函数。

Eval方法实际上是TemplateControl的,而SystemWebUIPage和SystemWebUIUserControl都继承于TemplateControl,所以我们可以在Page和UserControl上直接调用个方法。

PageEval方法可以帮助我们更好的撰写数据绑定表达式,在ASPNET 1x时代,数据绑定表达式的一般形式是:

%# DataBinderEval( Container , “DataItemName”) %

而在ASPNET 20中,同样的代码,我们可以这样写:

%# Eval( “Name” )%

ASPNET 20是怎么实现的呢?我们先从Eval方法来研究,通过反射NET Framework 20类库的源代码,我们可以看到这个方法是这样实现的:

protected internal object Eval(string expression)

{

thisCheckPageExists();

return DataBinderEval(thisPageGetDataItem(), expression);

}

第一行我们不必管,这是检查调用的时候有没有Page对象的,如果没有则会抛出一个异常。

关键是第二行:

return DataBinderEval(thisPageGetDataItem(), expression);

PageGetDataItem()也是20中新增的一个方法,用途是正是取代ASPNET 1x中的ContainerDataItem。

看来不摸清楚GetDataItem()方法,我们也很难明白Eval的原理。GetDataItem的实现也很简单:

public object GetDataItem()

{

if ((this_dataBindingContext == null) (this_dataBindingContextCount == 0))

{

throw new InvalidOperationException(SRGetString(“"Page_MissingDataBindingContext“"));

}

return this_dataBindingContextPeek();

}

我们注意到了有一个内部对象_dataBindingContext,通过查源代码发现这是一个Stack类型的东西。所以他有Peek方法。而这一段代码很容易看懂,先判断这个Stack是否被实例化,然后,判断这个Stack里面是不是有任何元素,如果Stack没有被实例化或者没有元素则抛出一个异常。最后是将这个堆栈顶部的元素返回。

ASPNET 20用了一个Stack来保存所谓的DataItem,我们很快就查到了为这个堆栈压元素和d出元素的方法:ControlDataBind方法:

protected virtual void DataBind(bool raiseOnDataBinding)

{

bool flag1 = false;//这个标志的用处在上下文中很容易推出来,如果有DataItem压栈,则在后面出栈。

if (thisIsBindingContainer)//判断控件是不是数据绑定容器,实际上就是判断控件类是不是实现了INamingContainer

{

bool flag2;

object obj1 = DataBinderGetDataItem(this, out flag2);//这个方法是判断控件是不是有DataItem属性,并把它取出来。

if (flag2 && (thisPage != null))//如果控件有DataItem

{

thisPagePushDataBindingContext(obj1);//把DataItem压栈,PushDataBindingContext就是调用_dataBindingContext的Push方法

flag1 = true;

}

}

try

{

if (raiseOnDataBinding)//这里是判断是不是触发DataBinding事件的。

{

thisOnDataBinding(EventArgsEmpty);

}

thisDataBindChildren();//对子控件进行数据绑定,如果这个控件有DataItem,则上面会将DataItem压入栈顶,这样,在子控件里面调用Eval或者GetDataItem方法,就会把刚刚压进去的DataItem给取出来。

}

finally

{

if (flag1)//如果刚才有压栈,则现在d出来。

{

thisPagePopDataBindingContext();//PopDataBindingContext就是调用_dataBindingContext的Pop方法

}

}

}

以上就是关于在一个数据库学生表中,要分别统计男女生人数,用count()函数怎么实现啊全部的内容,包括:在一个数据库学生表中,要分别统计男女生人数,用count()函数怎么实现啊、在Excel中一共包含11大类的内置函数请举出其中的5例、大家知道asp.net那个读取数据库表字段的函数eval是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10102746.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存