何代其
摘要:在大数据肆虐的今天,数据正在迅速膨胀并变大,已经渗透到每一个行业和业务职能领域,成为重要的生产因素,它决定着企业的未来发展,虽然很多企业可能并没有意识到数据爆炸性增长带来问题的隐患,但是随着时间的推移,人们将越来越多的意识到数据对企业的重要性。
关键词:探讨;自定义;SQL语句;应用
信息化越好的企业,对数据会越来越重视,如何从数据库中检索数据,最常见的方法莫过于使用简单的DELETE、INSERT、SELECT、UPDATE等标准SQL语句,要不就是技术尖端的存储过程,但这两种方法很有局限性。事实上介于标准SQL语句和存储过程之间的自定义SQL语句更灵活,更方便。
一、使用标准SQL语句
标准的SQL语句使用方法很简单,如:SelectCommand="SELECT * FROM [manger] where ID<>1" SelectCommandType="Text",由于标准的SQL语句是默认值,所以一般把SelectCommandType="Text"省略。
二、使用存储过程
尽管存储过程功能强大,但使用却很简单,比如:
SelectCommand="xytotal" SelectCommandType="StoredProcedure">
PropertyName="SelectedValue" Type="String" />
其中xytotal是存储过程名,nf是参数。
三、使用自定义SQL语句
1.使用CAST函数构造数据类型
在工资查询时,可选择起止年月,但数据库没有年、月数据类型,只有日期类型,一般用每月的1日表示该月,因此要用年、月和“-1”日进行构造,即cast(@年+'-'+@月+'-1' as datetime),由此构成Where条件。如:SelectCommand="SELECT [应发合计],[代扣合计],[实发金额],……,[月份] FROM [simplelist] WHERE 月份>= cast(@起年+'-'+@起月+'-1' as datetime)and 月份<= cast(@止年+'-'+@止月+'-1' as datetime)"
2.使用CASE WHEN THEN ELSE END选择字段
SQL命令中的case...when...then...else...end条件查询不同于where,case...when...then...else...end在from前面,可以改变记录中某字段的值,不能决定是否显示该记录;而where在from后面,不可以改变记录中某字段的值,但可以决定是否显示该记录。简单地说,case是垂直筛选字段,而where是水平筛选记录,如SelectCommand="SELECT 学院,CASE 省名 WHEN '合计' THEN 省名 ELSE 省区市 END AS 地区,人数 FROM totalview"。