-
一个常用的报表统计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 -
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 -
数据库常用的sql语句汇总
SQL是目前使用最为广泛的数据库语言之一。这里,我总结了在数据库上,用SQL语言对数据排序、过滤和分组,以及表、视图、联结、子查询、游标、存储过程和触发器等内容...
数据库操作教程 2022-09-23 18:18:14 -
SQLServer中参数化SQL写法遇到parametersniff,导致不合理执行计划重用的快速解决方法
parametersniff问题是重用其他参数生成的执行计划,导致当前参数采用该执行计划非最优化的现象。想必熟悉数据的同学都应该知道,产生parametersniff最典型的问题就是使用了参数化的SQL(或者存储过程中使用了参数化)写法,如果存在数据分布不均匀的情况下,正常情况下生成的执行计划,在传入在分布数据较多的参数的情况下,重用了正常参数生成的执行计划,而这种缓存的执行计划并非适合当前参数的一种情况...
数据库操作教程 2022-09-23 17:57:30 -
实用的银行转账存储过程和流水号生成存储过程
银行转账存储过程USE[BankInfor]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOALTERPROCEDURE[dbo].[Transfer](@inAccountint,@outAccountint,@amountfloat)asdeclare@totalDepositfloat;beginselect@totalDeposit=totalfromAccountwhereAccountNum=@outAccount;if@totalDepositisnullbeginrollback;print'转出账户不存在或账户中没有存款'return;endif@totalDeposit<@amountbeginrollback;print'余额不足,不能操作'return;endupdateAccountsettotal=total-@amountwhereAccountNum=@outAccount;updateAccountsettotal=total+@amountwhereAccountNum=@inAccount;print'转...
数据库操作教程 2022-09-23 17:56:20 -
非常好用的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 -
SqlServer中常用的6个自定义函数分享
在日常应用中,往往根据实际需求录入一些值,而这些值不能直接使用,所以Sql中经常会对字段值进行一些常规的处理。这里搜集了(提取数字、英文、中文、过滤重复字符、分割字符的方法),方便日后查询使用...
数据库操作教程 2022-09-23 17:30:34 -
在SQLServer中使用SQL语句查询一个存储过程被其它所有的存储过程引用的存储过程名
这个问题对于规模稍微大些的项目而言,显得尤其重要了,数据库中如果有几百个存储过程,难道还一个个找不成,即使自己很了解业务和系统,时间长了,也难免能记得住。如何使用SQL语句进行查询呢?下面就和大家分享下SQL查询的方法:复制代码代码如下:selectdistinctnamefromsyscommentsa,sysobjectsbwherea.id=b.idandb.xtype='p'andtextlike'%pro_GetSN%'上面的蓝色字体部分表示要查询的存储过程的名称...
数据库操作教程 2022-09-23 17:16:50 -
SQLSERVER编译与重编译发生场景及重用的利弊介绍
编译的含义--------------------------------------------------------------------------------当SQLSERVER收到任何一个指令,包括查询(query)、批处理(batch)、存储过程、触发器(trigger)、预编译指令(preparedstatement)和动态SQL语句(dynamicSQLStatement)要完成语法解释、语句解释,然后再进行“编译(compile)”,生成能够运行的“执行计划(executionplan)”。在编译的过程中,SQLSERVER会根据所涉及的对象的架构(schema)、统计信息以及指令的具体内容,估算可能的执行计划,以及他们的成本(cost),最后选择一个SQLSERVER认为成本最低的执行计划来执行...
数据库操作教程 2022-09-23 17:14:17 -
PL/SQLDEVELOPER使用的一些技巧
1,登录后默认自动选中MyObjects默认情况下,PLSQLDeveloper登录后,Brower里会选择Allobjects,如果你登录的用户是dba,要展开tables目录,正常情况都需要Wait几秒钟,而选择MyObjects后响应速率则是以毫秒计算的。Tools菜单-->ObjectBrowerFilters,会打开BrowerFolders的定单窗口,把“MyObjects”设为默认即可...
数据库操作教程 2022-09-23 17:13:11 -
sqlserver通用的删除服务器上的所有相同后缀的临时表
复制代码代码如下:usetempdbifobject_id('tempdb..#table')isnotnulldroptabletempdb..#tableselectnameintotempdb..#tablefrom(select*fromsysobjectswherextype='U')awherea.namelike'%test_select'declare@tablevarchar(100),@countintselect@count=count(name)fromtempdb..#tablewhile(@count>0)beginselecttop1@table=namefromtempdb..#tableexec('ifobject_id('''+@table+''')isnotnulldroptable'+@table+'deletefromtempdb..#tablewherename='''+@table+'''')set@count=@count-1enddroptabletempdb..#table建议:尽量不要大量使用临时表,因为使用tempdb库会使...
数据库操作教程 2022-09-23 17:09:11