-
SQL语句技巧:按月统计数据
表结构如下:qty date----------------------------------------------13 2005/01/1715 2005/01/193 2005/01/25105 2005/01/271 2005/01/31352 2005/02/0312 2005/02/04255 2005/02/076 2005/02/181 2005/02/1928 2005/02/211 2005/02/22394 2005/02/23359 2005/02/24313 2005/02/25325 2005/02/26544 2005/02/2768 2005/02/282 2005/03/01求一個SQL寫法,將每個月的數量求和...
数据库操作教程 2022-09-23 20:23:18 -
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语句
复制代码代码如下: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语句
1、例如:有两个表A(字段1,字段2,字段3)、B(字段2,字段3),其中存储数据如下所示表A字段1字段2字段31<Null>地段内容11<Null>地段内容12<Null>地段内容22<Null>地段内容23<Null>地段内容34<Null>地段内容45<Null>地段内容55<Null>地段内容55<Null>地段内容56<Null>地段内容67<Null>地段内容78<Null>地段内容88<Null>地段内容88<Null>地段内容88<Null>地段内容8表B字段2字段3wdz1地段内容1wdz2地段内容3wdz3地段内容5wdz4地段内容6wdz5地段内容7wdz6地段内容8使用下面的Sql语句(可以达到将表A中字段3与表B中字段3相同的数据字段2填充到表A中的字段2)update表1set字段1=(select字段1from表2where表1.字段3=表2.字段3)结果如下表所示表A结果字段1...
数据库操作教程 2022-09-23 20:21:08 -
mssql数据库系统崩溃后的一般处理步骤与方法
mssql数据库系统崩溃后的一般处理步骤 情况描述:SQL Server 2000崩溃,重新安装数据库。有以下准备:1, 三个系统库(master,msdb,model)的完全备份:2 两个用户数据库(user01,user02)的备份(周日的完全备份+除周日外每天的差异备份):三个系统数据库是早期备份的,之间没有更新过帐号信息,没有增减过作业等等...
数据库操作教程 2022-09-23 20:13:46 -
关于SQLServer中bit类型字段增删查改的一些事
前言本文主要给大家介绍了关于SQLServer中bit类型字段增删查改的一些事,话说BIT类型字段之前,先看“诡异”的一幕,执行Update成功,但是查询出来的结果依然是1,而不是Update的2当别人问起我来的时候,本人当时也是处于懵逼状态的,后面联想具体的业务突然想起来这个字段是bit类型的 如果把这个现象跟BIT类型字段连续起来就不觉得奇怪了。废话不多,直接上代码看结果就好了...
数据库操作教程 2022-09-23 18:21:17 -
SQLServer中关于基数估计计算预估行数的一些方法探讨
关于SQLServer2014中的基数估计,官方文档OptimizingYourQueryPlanswiththeSQLServer2014CardinalityEstimator里有大量细节介绍,但是全部是英文,估计也没有几个人仔细阅读。那么SQLServer2014中基数估计的预估行数到底是怎么计算的呢?有哪一些规律呢?我们下面通过一些例子来初略了解一下,下面测试案例仅供参考,如有不足或肤浅的地方,敬请指教!下面实验测试的环境主要为SQLServer2014SP2(StandardEdition(64-bit))具体版本号为12.0.5000.0,如有在其它版本测试,后面会做具体说明...
数据库操作教程 2022-09-23 18:20:51 -
解决SQLServer无法启动的小技巧
SQLServer无法启动主要的原因在登录上,下面就教您一个解决SQLServer无法启动的小技巧,如果您也遇到过SQLServer无法启动的问题,不妨一看。SQLServer有时候会无法正确启动,这是因为Executive服务无法登录引起的...
数据库操作教程 2022-09-23 17:56:30 -
非常好用的sql语句(日常整理)
1./*得到trace文件路径和名称*/SELECTd.VALUE||'/'||LOWER(RTRIM(i.INSTANCE,CHR(0)))||'_ora_'||p.spid||'.trc'trace_file_nameFROM(SELECTp.spidFROMv$mystatm,v$sessions,v$processpWHEREm.statistic#=1ANDs.SID=m.SIDANDp.addr=s.paddr)p,(SELECTt.INSTANCEFROMv$threadt,v$parametervWHEREv.NAME='thread'AND(v.VALUE=0ORt.thread#=TO_NUMBER(v.VALUE)))i,(SELECTVALUEFROMv$parameterWHERENAME='user_dump_dest')d2./*显示产生锁定的sql语句*/select/*+NO_MERGE(a)NO_MERGE(b)NO_MERGE(c)*/a.username,a.machine,a.sid,a.serial#,a.last_call_et"Secon...
数据库操作教程 2022-09-23 17:50:51 -
mssqlserver中实现的unix时间戳函数(含生成和格式化,可以和mysql兼容)
直接上代码:CREATEFUNCTIONUNIX_TIMESTAMP(@ctimestampdatetime)RETURNSintegerASBEGIN/*Functionbody*/declare@returnintegerSELECT@return=DATEDIFF(SECOND,{d'1970-01-01'},@ctimestamp)return@returnENDCREATEFUNCTIONfrom_unixtime(@tsinteger)RETURNSdatetimeASBEGIN/*Functionbody*/declare@returndatetimeselect@return=DATEADD(second,@ts,{d'1970-01-01'})return@returnEND用法跟MySQL下的一样类似:selectdbo.UNIX_TIMESTAMP('2013-1-1')selectdbo...
数据库操作教程 2022-09-23 17:47:59 -
查询Sqlserver数据库死锁的一个存储过程分享
使用sqlserver作为数据库的应用系统,都避免不了有时候会产生死锁,死锁出现以后,维护人员或者开发人员大多只会通过sp_who来查找死锁的进程,然后用sp_kill杀掉。利用sp_who_lock这个存储过程,可以很方便的知道哪个进程出现了死锁,出现死锁的问题在哪里.创建sp_who_lock存储过程CREATEproceduresp_who_lockasbegindeclare@spidintdeclare@blkintdeclare@countintdeclare@indexintdeclare@locktinyintset@lock=0createtable#temp_who_lock(idintidentity(1,1),spidint,blkint)if@@error<>0return@@errorinsertinto#temp_who_lock(spid,blk)select0,blockedfrom(select*frommaster..sysprocesseswhereblocked>0)awherenotexists(select*frommas...
数据库操作教程 2022-09-23 17:47:30