-
Sqlfunction多行中的列合并为一行一列的方法
复制代码代码如下:CREATETABLEtb(standardsvarchar(50),amountvarchar(50),variationvarchar(50),statussvarchar(50),Reasonvarchar(50))insertintotbvalues('55','279','4','物量积压','加工人员设备不足;T排制作进度较慢;')insertintotbvalues('55','279','4','物量积压','部件人员不足;')insertintotbvalues('55','279','4','物量积压','跨间场地积压;图纸问题较多;')insertintotbvalues('56','300','4','物量积压','AAAA;')insertintotbvalues('56','300','4','物量积压','BBBB;')insertintotbvalues('56','300','4','物量积压','CCCC;')createfunctiontest(@standardsvarchar(100))returnsvarchar(8000)...
数据库操作教程 2022-09-23 20:37:32 -
SQL语句一个简单的字符串分割函数
复制代码代码如下:CREATEFUNCTIONdbo.f_splitstr(@strvarchar(8000))RETURNS@rTABLE(idintIDENTITY(1,1),valuevarchar(5000))ASBEGIN/*Functionbody*/DECLARE@posintSET@pos=CHARINDEX(',',@str)WHILE@pos>0BEGININSERT@r(value)VALUES(LEFT(@str,@pos-1))SELECT@str=STUFF(@str,1,@pos,''),@pos=CHARINDEX(',',@str)ENDIF@str>''INSERT@r(value)VALUES(@str)RETURNENDselect*fromf_splitstr('中,国,人')...
数据库操作教程 2022-09-23 20:32:53 -
扩展性很好的一个分页存储过程分享
这是经常用的一个分页存储过程希望大家指点不足复制代码代码如下:USE[a6756475746]GO/******Object:StoredProcedure[dbo].[tbl_order_SearchWhereAndPage]ScriptDate:11/01/201109:37:39******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOALTERPROCEDURE[dbo]...
数据库操作教程 2022-09-23 20:31:39 -
很有意思的SQL多行数据拼接
要实现的SQL查询很原始:要求从第一个表进行查询得到第二个表格式的数据,上网查询之后竟然能写出下面的SQL:复制代码代码如下:select*fromuserinoSELECT*FROM(SELECTDISTINCTuserpartFROMuserino)AOUTERAPPLY(SELECT[usernames]=replace(replace(replace((SELECTusernameasvalueFROMuserinoNWHEREuserpart=A.userpartorderbyn.usernameascFORXMLAUTO),'"/><Nvalue="','/'),'<Nvalue="',''),'"/>',''))NOUTERAPPLY(SELECT[username_cns]=replace(replace(replace((SELECTusername_cnasvalueFROMuserinoMWHEREuserpart=A.userpartorderbym.usernameascFORXMLAUTO),'"/><Mvalue="',...
数据库操作教程 2022-09-23 20:31:17 -
SQL注入式攻击的本质
有文章还说注入式攻击还会有“第三波”攻击潮,到时候会更加难以察觉,连微软的大佬都跑出来澄清说与微软的技术与编码无关,微软为此还专门推出了三个检测软件,那么这个SQL注入式攻击的漏洞究竟是怎么造成的呢?正如微软的大佬所说的,是由于网站程序的开发人员编码不当造成的,不光是ASP、ASP.NET,也包括JSP、PHP等技术,受影响的也不仅仅是Access和SQLServer数据库,也包括Oracle和MySql等其他关系数据库,和人家微软没什么关系。事实上不光是基于B/S架构的系统或网站存在这样的问题,基于C/S架构的系统也存在这样的问题,只不过由于C/S架构的特点决定了不可能像B/S系统这样影响这么广泛...
数据库操作教程 2022-09-23 20:25:42 -
一个常用的报表统计SQL语句
一般都给定按日期区间统计某一值,每一个列就是统计时的分类。如下图:下面给出上图的例子的sql语句写法:(注:此处是按“日期”字段统计)复制代码代码如下:select日期,自选字段1,自选字段2,sum(类型1)类型1,sum(类型2)类型2,sum(类型3)类型3,sum(类型4)类型4,sum(类型5)类型5,sum(类型6)类型6from(selectto_date(to_char(日期,'yyyy-MM-dd'),'yyyy-mm-dd')日期,自选字段1,自选字段2,count(主键字段)类型1,0类型2,0类型3,0类型4,0类型5,0类型6from表名where1=1groupbyto_date(to_char(日期,'yyyy-MM-dd'),'yyyy-mm-dd'),自选字段1,自选字段2unionallselectto_date(to_char(日期,'yyyy-MM-dd'),'yyyy-mm-dd')日期,自选字段1,自选字段2,0类型1,count(主键字段)类型2,0类型3,0类型4,0类型5,0类型6from表名where1=1groupbyto_date...
数据库操作教程 2022-09-23 20:23:47 -
一个分页存储过程代码
复制代码代码如下:--------------------------------------用途:分页存储过程(对有主键的表效率极高)--说明:------------------------------------ALTERPROCEDURE[UP_GetRecordByPage]@tblNamevarchar(255),--表名@fldNamevarchar(255)...
数据库操作教程 2022-09-23 20:23:43 -
sqlserver中比较一个字符串中是否含含另一个字符串中的一个字符
版本一:按分隔符进行比较算法思路:按分隔符截取搜索字符串循环与待搜索字符进行比较复制代码代码如下:USE[Fly]GO--参数:@inStr待搜索字串,@fndStr搜索字串,@doc分隔符--例:selectdbo.fSearch('1,2,3,4,5,6','3,6,5,8,2',',')返回0-不匹配,返回1-匹配(@instr中有@fndStr内容)--可以用于表搜索,如:--Select*,dbo...
数据库操作教程 2022-09-23 20:21:32 -
一个用来统计相同姓名人数的SQl语句
sql语句查询表结构是这样:ID姓名性别1张三男2王四男3丽丽女4张三男5赵柳男6高洁男7王四女8高洁女9张三女怎么能用一条SQL语句查询出如下的结果姓名人员个数男人数女人数包含ID张三3211,4,9王四2112,7丽丽1013高洁2116,8赵柳1105复制代码代码如下:SELECT*FROM(SELECTDISTINCTName,Count(ID)as人員個數,sum(casewhenSex='男'then1else0end)as男人數,sum(casewhenSex='女'then1else0end)as女人數FROMTestgroupbyName)AOUTERAPPLY(SELECT[包含ID]=STUFF(REPLACE(REPLACE((SELECTIDFROMTestNWHEREName=A.NameFORXMLAUTO),'<NID="',','),'"/>',''),1,1,''))N...
数据库操作教程 2022-09-23 20:21:23 -
将所有符合条件的结果拼接成一列并用逗号隔开的一个sql语句
复制代码代码如下:createtabletb(idint,valuevarchar(10))insertintotbvalues(1,'aa')insertintotbvalues(1,'bb')insertintotbvalues(2,'aaa')insertintotbvalues(2,'bbb')insertintotbvalues(2,'ccc')gocreatefunction[dbo].[f_str](@idint)returnsnvarchar(1000)asbegindeclare@strnvarchar(1000)set@str=''select@str=@str+','+cast(valueasnvarchar(900))fromtbwhereid=@idset@str=right(@str,len(@str)-1)return@strendgo--调用函数selectid,value=dbo.f_str(id)fromtbgroupbyid运行结果:本来在上面的函数中所有的nvarchar都是varchar类型的,并且上面函数的红色处在调用cast方法时,并未指定...
数据库操作教程 2022-09-23 20:21:15 -
分享一个简单的sql注入
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句...
数据库操作教程 2022-09-23 18:19:45