-
SqlServer2000行转列的实现(横排)
我们用到的表结构如下:三张表的关系为:现有的测试数据为:我们需要的结果是:复制代码代码如下:DECLARE@strSQLVARCHAR(8000)SET@strSQL='SELECTt.STUNAME[姓名]'SELECT@strSQL=@strSQL+',SUM(CASEs.SNAMEWHEN'''+SNAME+'''THENg.[Score]END)['+SNAME+']'FROM(SELECTSNAMEFROM[Subject])AStmpSELECT@strSQL=@strSQL+'FROM[Score]g,[Subject]s,[Student]tWHEREg.SID=s.SIDANDg.STUID=t.STUIDGROUPBYt.STUID,t.STUNAME'EXEC(@strSQL)SQLSERVER2005中,已经有实现此功能的内置方法了。...
数据库操作教程 2022-09-23 20:12:44 -
Mybatis4之Mybatis动态sql的实现代码
1.什么是动态SQL传统的使用JDBC的方法,相信大家在组合复杂的的SQL语句的时候,需要去拼接,稍不注意哪怕少了个空格,都会导致错误。Mybatis的动态SQL功能正是为了解决这种问题,其通过if,choose,when,otherwise,trim,where,set,foreach标签,可组合成非常灵活的SQL语句,从而提高开发人员的效率...
数据库操作教程 2022-09-23 18:25:52 -
SqlServer序号列的实现方法
对于SQLSERVER2000及更早的版本,需要使用一个自增列,结合临时表来实现。复制代码代码如下:SELECT[AUTOID]=IDENTITY(int,1,1),*INTO#temp_tableFROM表名;复制代码代码如下:SELECT*FROM#temp_table;从SQLSERVER2005开始,SQLSERVER提供了一个ROW_NUMBER()函数,大大简化了工作...
数据库操作教程 2022-09-23 18:25:22 -
SqlServer数据库备份与还原的实现步骤
目录问题描述SqlServer数据库备份步骤SqlServer数据库还原步骤其它问题描述 最近需要给程序新增功能,用于将旧格式的数据转换为新格式,同时删除旧格式的数据(新旧格式的数据库表有部分重叠,同一份数据无法同时存在新旧格式的数据),由于测试环境中的测试数据不多,功能调试几次之后就没有旧格式的数据做测试了,因此想到在功能调试前先将测试数据库备份,然后功能调试之后再将测试数据库还原,这样就可以重复的进行功能调试。 数据库备份过程比较顺利,但是还原过程中出现错误,无论是还原数据库还是还原数据库文件都报错: 还原数据库时报下面错误: 还原数据库文件时报下面错误: 通过百度资料,最终解决了还原数据库出错的问题,现将数据库备份和还原的步骤列在下面,以备后用...
数据库操作教程 2022-09-23 18:24:49 -
SQLServer中使用扩展事件获取Session级别的等待信息及SQLServer2016中Session级别等待信息的增强
什么是等待简单说明一下什么是等待:当应用程序对SQLServer发起一个Session请求的时候,这个Session请求在数据库中执行的过程中会申请其所需要的资源,比如可能会申请内存资源,表上的锁资源,物理IO资源,网络资源等等,如果当前Session运行过程中需要申请的某些资源无法立即得到满足,就会产生等待。SQLServer会以不用的方式来展现这个等待信息,比活动Session的等待信息,实例级的等待信息等等...
数据库操作教程 2022-09-23 18:23:47 -
SQLServer存储过程创建和修改的实现代码
打开SQLServer2005的管理工具,选中需要创建存储过程的数据库,找到“可编程性”,展开后可以看到“存储过程”。右键点击它,选择“新建存储过程”,右侧的编辑窗口打开了,里面装着微软自动生成的SQLServer创建存储过程的语句...
数据库操作教程 2022-09-23 18:23:16 -
实现SQLServer原生数据从XML生成JSON数据的实例代码
实现SQLServer原生数据从XML生成JSON数据的实例代码 SQLServer是关系数据库,查询结果通常都是数据集,但是在一些特殊需求下,我们需要XML数据,最近这些年,JSON作为WebAPI常用的交换数据格式,那么数据库如何生成JSON数据呢?今天就写了一个DEMO. 1...
数据库操作教程 2022-09-23 18:23:05 -
SQL获取所有上级的实现方法
SQL获取所有上级的实现方法说明:(1)可以做成一个函数,直接调用即可;(2)M0Org是数据库存在的表,M0OrgPID为目标表,OrgID为ID字段,PID为上级ID字段DECLARE@OrgIDNVARCHAR(36)='00000000-0000-0000-00000002205223459';--获取当前机构的所有上级放入M0OrgPIDWITHM0OrgPIDAS(SELECT*,0ASlvlFROMM0OrgWHEREOrgID=@OrgIDUNIONALLSELECTd.*,lvl+1FROMM0OrgPIDcINNERJOINM0OrgdONc...
数据库操作教程 2022-09-23 18:22:19 -
SqlServer在事务中获得自增ID的实例代码
SqlServer在事务中获得自增ID实例代码在sqlserver中插入数据时,如何返回自增的主键ID,方式有很多,这里提供一种。代码如下:USEtempdbgoCREATETABLEtable1(idINT,employeeVARCHAR(32))goINSERTINTOtable1VALUES(1,'one')INSERTINTOtable1VALUES(2,'two')INSERTINTOtable1VALUES(3,'three')INSERTINTOtable1VALUES(4,'four')GOCREATETABLEtable2(idINTIDENTITY(1,1),employeeVARCHAR(32))GO--=================================--用OUTPUT把ID插入@MyTableVar--=================================DECLARE@MyTableVarTABLE(idINT)INSERTINTOtable2(employee)OUTPUTINSERTED.idINTO@MyTabl...
数据库操作教程 2022-09-23 18:21:06 -
Sqlserver事务备份和还原的实例代码(必看)
废话不多说,直接上代码createdatabasemydbusemydbgocreatetableaccount(idvarchar(16),namevarchar(16),balancefloat)goselect*fromaccountinsertintoaccount(id,name,balance)values('620101','liyong',300)insertintoaccount(id,name,balance)values('620106','mali',400)--insertintoaccount(id,name,balance)values('620009','chenying',800)insertintoaccount(id,name,balance)values('646009','chenying',800)--deletefromaccountwhereid='620009'goupdateaccountsetbalance=balance-1000whereid='620101'updateaccountsetbalance=balance+100...
数据库操作教程 2022-09-23 18:20:38 -
sql分组后二次汇总(处理表重复记录查询和删除)的实现方法
--处理表重复记录(查询和删除)/******************************************************************************************************************************************************1、Num、Name相同的重复值记录,没有大小关系只保留一条2、Name相同,ID有大小关系时,保留大或小其中一个记录整理人:中国风(Roy)日期:2008.06...
数据库操作教程 2022-09-23 18:14:54 -
sqlserver递归子节点、父节点sql查询表结构的实例
一、查询当前部门下的所有子部门WITHdeptAS(SELECT*FROMdbo.deptTab--部门表WHEREpid=@idUNIONALLSELECTd.*FROMdbo.deptTabdINNERJOINdeptONd.pid=dept.id)SELECT*FROMdept二、查询当前部门所有上级部门WITHtabAS(SELECTDepId,ParentId,DepName,[Enable],0AS[Level]FROMdeptTabWITH(NOLOCK)--表名WHERE[Enable][email protected],b.ParentId,b.DepName,b.[Enable],a.[Level]+1FROMtaba,deptTabbWITH(NOLOCK)WHEREa.ParentId=b.depIdANDb.[enable]=1)SELECT*FROMtabWITH(NOLOCK)WHERE[enable]=1ORDERBY[level]DESC三、查询当前表的说明描述SELECTtbs.name表名,ds.value...
数据库操作教程 2022-09-23 18:14:07