仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 782|回复: 7
打印 上一主题 下一主题

[学习教程] MSSQL教程之断定几个SQL Server栏中的最年夜值

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:17:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
mysql使用内部操作字符集gbk来进行操作,即执行"SELECT*FROMtestWHEREname=xxxor1=1/*LIMIT1";从而注入成功你有一个内里包括整数、浮点数、金额或日期的N列SQLServer表,而你的义务是前往这些列中某一行的最年夜值。你乃至被请求一次求几行的最年夜值,前往一个纪录组(recordset)。
第一个义务表示你大概事后不晓得要对照哪一列或对照几列,但现实并不是老是云云。大概你恰好晓得你要对照哪些列,而且晓得不成能增添任何新列。另外一方面,你大概必需做好防备企图,估计到大概会增添一些新列。写一个恰好对照N个值的函数能够完成这个义务,但它在别的情形下又有多年夜用途呢?
假定上面是你的表:
CREATETABLE[dbo].[MinMax](
[MinMaxID][int]IDENTITY(1,1)NOTNULL,
[Value1][int]NULL,
[Value2][int]NULL,
[Value3][int]NULL,
[Value4][int]NULL,
CONSTRAINT[PK_MinMax]PRIMARYKEYCLUSTERED
(
[MinMaxID]ASC
)WITH(PAD_INDEX=OFF,IGNORE_DUP_KEY=OFF)ON[PRIMARY]
)ON[PRIMARY]
注重,表界说同意在它的四个列中利用NULL值。在年夜多半情形下,我会只管使用非NULL列,但在这类情形下,一个或几个日期列中很有大概包括NULL值;我固然不但愿仅仅为了回避非NULL成绩而输出毛病的数据。因而我把一切日期列界说为NULL列。给出了一些你能够拔出表中的样本值。
关于复杂Min()和Max()函数的感化,SQL有它本人的划定,即对照一个列中的值。既然没有内置函数来对照任何两个值并断定最年夜或最小值,你应当自行编写这类函数。我决意把它们叫做Min2()和Max2()。见列表A。
你能够用这个代码对它们举行测试:
SELECTdbo.Min2(23,34)
SELECTdbo.Max2(23,NULL)
SELECTdbo.Min2(NULL,34)
SELECTdbo.Max2(23,NULL)
要对照原始表中的值,你能够复杂地嵌进函数挪用,就像如许:
SELECTdbo.Max2(Value1,dbo.Max2(Value2,dbo.Max2(Value3,Value4)))
FROMdbo.MinMax
依据原始表,这个挪用的了局以下:
7
10
27
81
仍是有一个成绩:下面的代码把NULL转换成0。在Min2()函数中,这意味着假如有自变量为NULL值,则前往了局为0。在多半情形下,我以为如许做是得当的,但在一些特别情形下,你大概但愿前往NULL而不是0。
你大概已编写了一个恰好只承受四个参数的函数,但如许的函数过于特别,不克不及在别的情形下利用。花一点工夫思索更广泛的情形,你将会失掉加倍有效的函数。

因此我们的保存数据方法就是:在删除的动作开始之前,把表数据备份起来,然后留一个空表,在空表上执行“删除”操作。
灵魂腐蚀 该用户已被删除
沙发
发表于 2015-1-19 06:53:57 | 只看该作者
比如日志传送、比如集群。。。
山那边是海 该用户已被删除
板凳
发表于 2015-1-27 06:09:27 | 只看该作者
从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。
精灵巫婆 该用户已被删除
地板
发表于 2015-2-5 03:56:29 | 只看该作者
总感觉自己还是不会SQL
海妖 该用户已被删除
5#
发表于 2015-3-1 21:24:35 | 只看该作者
两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书
金色的骷髅 该用户已被删除
6#
发表于 2015-3-11 00:19:26 | 只看该作者
我们学到了什么?思考问题的时候从表的角度来思考问
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-17 17:03:47 | 只看该作者
语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!
小女巫 该用户已被删除
8#
发表于 2015-3-24 14:28:37 | 只看该作者
SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-3 22:10

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表