-
将所有符合条件的结果拼接成一列并用逗号隔开的一个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 -
清空所有表中的数据的存储过程
复制代码代码如下:--*******************************************************--*清空所有表中的数据*--*撒哈拉大森林*--*2010-6-28*--*******************************************************ifexists(select*fromsysobjectswheretype='P'andname=N'P_DeleteAllData')dropprocedureP_DeleteAllDatagoCREATEPROCEDUREP_DeleteAllDataasEXECsp_MSForEachTable'ALTERTABLE?NOCHECKCONSTRAINTALL'--禁用约束EXECsp_MSForEachTable'ALTERTABLE?DISABLETRIGGERALL'--禁用触发器EXECsp_MSForEachTable'DELETEFROM?'--删除所有表中的数据EXECsp_MSForEachTable'ALTERTABLE?CHECKCONSTRAI...
数据库操作教程 2022-09-23 20:21:11 -
SQLServer中临时表与表变量的区别分析
在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候去使用临时表而不使用表变量,有时候去使用表变量而不使用临时表呢?临时表 临时表与永久表相似,只是它的创建是在Tempdb中,它只有在一个数据库连接结束后或者由SQL命令DROP掉,才会消失,否则就会一直存在。临时表在创建的时候都会产生SQLServer的系统日志,虽它们在Tempdb中体现,是分配在内存中的,它们也支持物理的磁盘,但用户在指定的磁盘里看不到文件...
数据库操作教程 2022-09-23 20:20:50 -
sql修改表的所有者
复制代码代码如下:use数据库goEXECsp_changeobjectowner‘原表的所有者.表名',现在的所有者例如:复制代码代码如下:execsp_changeobjectowner'ahuinan...
数据库操作教程 2022-09-23 20:15:28 -
sqlserver中查找所有包含了某个文本的存储过程
上图说明吧。上图存储过程调用了mup_GetA(我把和项目相关的命名都擦除掉了)上图通过sqlserver图形管理器自带的功能查看依赖于mup_GetA的对象...
数据库操作教程 2022-09-23 20:15:19 -
sqlupdate触发器可获得被update的行的信息
复制代码代码如下:createtriggerTgNameontbforupdateasifupdate(recommend)beginupdatetbsetcommenddate=(getdate())fromtbinnerjoininsertedontb.vlistid=Inserted.vlistidendrecommend表示被更新的字段.关键在于Inserted表触发器语句中使用了两种特殊的表:deleted表和inserted表。Deleted表用于存储DELETE和UPDATE语句所影响的行的复本...
数据库操作教程 2022-09-23 20:15:15 -
TRUNCATE快速删除表中的所有数据
备注与DELETE语句相比,TRUNCATETABLE具有以下优点:所用的事务日志空间较少。DELETE语句每次删除一行,并在事务日志中为所删除的每行记录一个条目...
数据库操作教程 2022-09-23 20:14:43 -
显示SqlServer中所有表中的信息
显示某个SqlServer某个数据库中所有表或视图的信息sqlserver2000与2005不同差别在于红色字部分以下语句为获取所有表信息,替换绿色黑体字"U"为"V"为获取所有视图信息。SqlServer2000版本SELECTSysobjects.nameASTABLE_NAME,syscolumns.Id,syscolumns.nameASCOLUMN_NAME,systypes.nameASDATA_TYPE,syscolumns.lengthasCHARACTER_MAXIMUM_LENGTH,sysproperties.[value]ASCOLUMN_DESCRIPTION, syscomments.textasCOLUMN_DEFAULT,syscolumns.isnullableasIS_NULLABLEFROMsyscolumnsINNERJOINsystypes ONsyscolumns.xtype=systypes.xtype LEFTJOINsysobjectsONsyscolumns...
数据库操作教程 2022-09-23 20:13:07 -
列出SQLServer中具有默认值的所有字段的语句
专家解答 通过查询任何数据库中的三个系统表,你可以获得每个表的每一个字段的默认值。下面是这个核心查询...
数据库操作教程 2022-09-23 20:12:48 -
找出所有非xml索引并重新整理的sql
复制代码代码如下:DECLAREcurCURSORFORSELECT[object_name]=s.name+'...
数据库操作教程 2022-09-23 20:12:38 -
使用SQL实现车流量的计算的示例代码
目录卡口转换率1、查出每个地区下每个路段下的车流量2、通过错位连接获取每辆车的行车记录3、获取行车过程中的车辆数4、获取每个卡口的总车辆数5、求出卡口之间的转换率卡口转换率将数据导入hive,通过SparkSql编写sql,实现不同业务的数据计算实现,主要讲述车辆卡口转换率,卡口转化率:主要计算不同卡口下车辆之间的流向,求出之间的转换率。1、查出每个地区下每个路段下的车流量selectcar,monitor_id,action_time,ROW_NUMBER()OVER(PARTITIONbycarORDERbyaction_time)asn1FROMtraffic.hive_flow_action此结果做为表1,方便后面错位连接使用2、通过错位连接获取每辆车的行车记录通过表1的结果,与自身进行错位链接,并以车牌为分区,拼接经过卡口的过程(selectt1.car,t1.monitor_id,concat(t1.monitor_id,"->",t2.monitor_id)aswayfrom(selectcar,monitor_id,action_time,ROW_NUMBER()...
数据库操作教程 2022-09-23 18:25:40 -
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