-
sqlserver对字段出现NULL值的处理
复制代码代码如下:-判断某些字段是否为空--caseselectcasewhen'字段名'isnullthen'N'elseconvert(varchar(20),'字段名')endas'NewName'selectcasewhennullisnullthen'N'elseconvert(varchar(20)...
数据库操作教程 2022-09-23 20:39:43 -
一个基于ROW_NUMBER()的通用分页存储过程代码
建立好如下的存储过程,以后要分页,直接调用改存储过程就可以了。注意:数据量大、性能要求高的,请个性化处理...
数据库操作教程 2022-09-23 20:39:19 -
SQL学习笔记八索引,表连接,子查询,ROW_NUMBER
索引经常要查询的语句,则给它建一个索引表连接selectT_OdersasojoinT_CustomersasCono.CustomerId=c...
数据库操作教程 2022-09-23 20:38:34 -
SQLserver查询数据类型为ntext是空或NULL值的方法
复制代码代码如下:--为空的值textntextselect*fromlf_newsNg_utfwheredatalength(newsContentE)=0ordatalength(newsContentE)isnull...
数据库操作教程 2022-09-23 20:38:31 -
SQL中WHERE变量ISNULL条件导致全表扫描问题的解决方法
复制代码代码如下:SET@SQL='SELECT*FROMCommentwith(nolock)WHERE1=1 And(@ProjectIdsIsNullorProjectId=@ProjectIds) And(@ScoresisnullorScore=@Scores)'印象中记得,以前在做Oracle开发时,这种写法是会导致全表扫描的,用不上索引,不知道SqlServer里是否也是一样呢,于是做一个简单的测试1、建立测试用的表结构和索引:复制代码代码如下:CREATETABLEaaa(idintIDENTITY,NAMEVARCHAR(12),ageINT)goCREATEINDEXidx_ageONaaa(age)GO2、插入1万条测试数据:复制代码代码如下:DECLARE@iINT;SET@i=0;WHILE@i<10000BEGIN INSERTINTOaaa(name,age)VALUES(CAST(@iASVARCHAR),@i) SET@i=@i+1;ENDGO3、先开启执行计...
数据库操作教程 2022-09-23 20:36:43 -
sqlserver错误602,未能在sysindexes中找到数据库的解决办法
解决办法:直接附加或附加应该是不行的,用脚本+导数据肯定没有问题。Sql2005转到Sql2000的步骤步骤1.生成for2000版本的数据库脚本Sql2005的mangerstudio--打开"对象资源管理器"(没有的话按F8),连接到你的实例--右键要转到2000的库--任务--生成脚本--在"脚本向导"的"选择数据库"中,确定选择的是要转到2000的库--勾选"为所选数据库中的所有对象编写脚本"--在接下来的"选择脚本选项"中,找到"为服务器版本编写脚本"项,选择"SQLServer2000"--其他选项根据需要设置--最后把脚本保存到一个.sql脚本文件2.在2000中创建目标数据库在查询分析器(或2005的mangerstudio在打开脚本文件),连接到SQLServer2000,执行上面生成的脚本.以创建一个新的数据库3.将数据从2005导到20002005的mangerstudio--打开"对象资源管理器"(没有的话按F8),连接到你的实例--右键要转到2000的库--任务--导出数据--在"SQLServer导入和导出向导"的"选择数据源"步骤中,确定选择的是要导出的数...
数据库操作教程 2022-09-23 20:35:58 -
SQL中exists的使用方法
有一个查询如下:复制代码代码如下:SELECTc.CustomerId,CompanyNameFROMCustomerscWHEREEXISTS(SELECTOrderIDFROMOrdersoWHEREo.CustomerID=cu.CustomerID)这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的是CustomerID和CompanyName字段,这两个字段肯定不在OrderID里面啊,这是如何匹配的呢?EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。EXISTS指定一个子查询,检测行的存在...
数据库操作教程 2022-09-23 20:34:48 -
sqlntext数据类型字符替换实现代码
复制代码代码如下:---ntext数据类型字符替换createtablett(sidINTIDENTITY(1,1),contntext)goinsertintott(cont)values(N'fdsadfdsa涂聚文工团缔友计算机信息技术有限公司可能性桔柑')goupdatettsetcont='fdsadfdsa涂聚文工团可能性缔友计算机信息技术有限公司桔柑'wheresid=1--去空格EXECsp_dboption'pubs','selectinto/bulkcopy','true'--sp_dboption'pubs','selectinto/bulkcopy','true'GODECLARE@ptrvalbinary(16),@iint,@kint,@fintselect@i=datalength(cont)fromttwheresid=1set@k=1while@i>1beginselect@f=CHARINDEX(SPACE(1),cont)fromttwheresid=1---SPACE(1)set@f=@f-1SELECT@ptrval=TEXTPTR(co...
数据库操作教程 2022-09-23 20:32:42 -
学习SQL语句(强大的groupby与selectfrom模式)
强大的groupby复制代码代码如下:selectstdname,isnull(sum(casestdsubjectwhen'化学'thenResultend),0)[化学],isnull(sum(casestdsubjectwhen'数学'thenResultend),0)[数学],isnull(sum(casestdsubjectwhen'物理'thenResultend),0)[物理],isnull(sum(casestdsubjectwhen'语文'thenResultend),0)[语文]from#studentgroupbystdnamegroupby与sum+case结合,可以将表1中的记录(行)变成表2的字段(列)。Sum里面如果没有case,那么出来的值,只能是全部科目的总和,用了case以后,就是某科的成绩;然后这里用了好几个sum,每个科目一个sum,于是表1中本来某人某科占一条记录的“行”就变成了表2里某人一条记录,每科做一个字段了利用selectfrom(selectfrom)的模式生成SQL语句复制代码代码如下:declare@sqlvarchar(4000...
数据库操作教程 2022-09-23 20:31:24 -
distinct多列问题结合groupby的解决方法
表table1idRegNamePostionSNPersonSN1山东齐鲁制药22322山东齐鲁制药22423北京城建公司22524科技公司2252我想获得结果是idRegNamePostionSNPersonSN1山东齐鲁制药22323北京城建公司22524科技公司2252selectdistinctRegName,PostionSN...
数据库操作教程 2022-09-23 20:28:42 -
sqlserver中的decimal或者numeric的精度问题
何谓精度:最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须是从1到最大精度38之间的值...
数据库操作教程 2022-09-23 20:26:23 -
SQL中sp_executesql存储过程的使用帮助
摘自SQLserver帮助文档对大家优查询速度有帮助!建议使用sp_executesql而不要使用EXECUTE语句执行字符串。支持参数替换不仅使sp_executesql比EXECUTE更通用,而且还使sp_executesql更有效,因为它生成的执行计划更有可能被SQLServer重新使用...
数据库操作教程 2022-09-23 20:25:44