SQL 常用语句

整理下工作中遇到的SQL一些基本操作,免得下次要用忘记了

1.将int型格式化成字符串,不足位数的前面补0:

SELECT  id,'T'+RIGHT('00000000'+CAST(id AS NVARCHAR(8)),8) AS NUM FROM Test 

2.表连接更新:

update a set Number=b.NUM from  a
join  b on a.Id=b.Id

3.创建SQL 递归函数

Create FUNCTION [dbo].[F_GetChildChapterId](@ID int)
RETURNS @tbChildId TABLE (ID int )--定义返回的表结构
AS
BEGIN        
 WITH F_GetChildChapterId(ID)    
 AS    
 (        
   SELECT Id AS ID FROM chapter WHERE ParentID=@ID        
   UNION ALL        
   SELECT chapter .Id FROM chapter 
  INNER JOIN F_GetChildChapterId ON F_GetChildChapterId.ID =chapter.ParentID
) 
INSERT INTO @tbChildId SELECT ID FROM F_GetChildChapterId
END

4.SQL 函数 实现split ,做字符串分割

CREATE function [dbo].[Split](
@source nvarchar(4000),--需要分隔的字符串
@splitstr nvarchar(20))--分隔字符
returns @temp table(a nvarchar(100))--分隔后以表格形式返回
as
begin
    declare @i int
    set @source=rtrim(ltrim(@source))--去除左右空格
    set @i=charindex(@splitstr ,@source)
    while @i>=1
    begin
        insert @temp values(left(@source,@i-1))
        set @source=substring(@source,@i+1,len(@source)-@i)
        set @i=charindex(@splitstr ,@source)
    end
    if @source<>'\'
       insert @temp values(@source)
    return
end

4.将SQL数据表中的某字段将一行数据拆成多行:先将需要拆分的行格式化成XML,再使用OUTER APPLY

SELECT eid,uid
	    , number= CONVERT(xml,'<root><v>' + REPLACE(number, ',', '</v><v>') +'</v></root>') 		
	    INTO  #Vtemp
	    FROM A 

格式化成XML后

 使用outer apply 后

SELECT a.eid,a.uid,B.number
FROM #VTemp A OUTER APPLY( SELECT number= N.v.value('.', 'int') FROM A.number.nodes('/root/v') N(v) )B

   

5.将SQL 数据表中根据某字段,将多行合并成一行,这个方法很多

select id,nameStr=stuff
  (
   (select ','+name
   from [test] where a.id=b.id for xml path('')),1,1,''

  ) 
  from [test]  b
  group by id

6.SQL 自增字段重置

--- 删除原表数据,并重置自增列
truncate table tablename  --truncate方式也可以重置自增字段
--重置表的自增字段,保留数据
DBCC CHECKIDENT (tablename,reseed,0) 
-- 设置允许显式插入自增列
SET IDENTITY_INSERT tablename  ON
-- 当然插入完毕记得要设置不允许显式插入自增列
SET IDENTITY_INSERT tablename  Off

7.SQL 某一字段相同的记录只取一条

SELECT  *  FROM [E_ApproveLog]  a
where ProcessID=24 and not exists( select 1 from [E_ApproveLog]  b where b.ProcessTaskID=a.ProcessTaskID and a.ApproveTime < b.ApproveTime)

  

8.统计数据表中列数量,及某字段为空的行数  

select count(name) from syscolumns where id=(select id from sysobjects where xtype='u' and name='tb')

 

DECLARE @s NVARCHAR(2000),@i INT
SET @i=0
declare @id nvarchar(100)
set @id='e3d0f16d-a520-4016-a84d-ef6195499691'
SELECT @s=ISNULL(@s+'+',' select cast(sum(')+'CASE WHEN NULLIF('+QUOTENAME(Name)+','''') is null then 1 else 0 end',@i=@i+1
FROM syscolumns 
WHERE ID=OBJECT_ID('tb ')
SELECT @s
EXEC(@s+')*1.0/ sum('+@i+') as decimal(18,2)) from tb where ID like ''' + @id + '''')

  

  

转载于:https://www.cnblogs.com/huanglin101/p/6269483.html

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
weixin102旅游社交微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值