SQL Server 使用,工作记录

用于记录一些工作中使用到的函数等。持续更新

一、需要批量的在数据库修改数据,将指定字段的指定字符删除。 replace函数

update 表名
set 字段名 = replace(CC,旧字符,新字符) where 条件

二、在指定字段中新增指定字符 concat函数

update 表名 set 字段名= concat(字段名,新增字符串) where 条件;
-- 默认加到指定字段名的最后

三、指定字符分组,然后在组内进行排序,将前五行数据取出。DENSE_RANK 函数

WITH SAPRank(Lot_Num,Part_Num,Op_Num, rank_rn)
 AS (
         SELECT Lot_Num,Part_Num,Op_Num ,
                 DENSE_RANK() OVER(PARTITION BY Lot_Num,Part_Num order by Op_Num DESC) as rank_rn
          FROM  表名 where ConfChangeTime>= '2021-10-08'
     )
SELECT Lot_Num,Part_Num,Op_Num FROM SAPRank WHERE rank_rn <= 5;
-- DENSE_RANK() OVER(PARTITION BY Lot_Num,Part_Num order by Op_Num DESC) as rank_rn 根据Lot_Num,Part_Num 进行分组,然后在组内根据Op_Num进行排序,返回名次

WITH SAPRank(Lot_Num,Part_Num,Op_Num, rank_rn)
 AS (
         SELECT Lot_Num,Part_Num,Op_Num ,
                 DENSE_RANK() OVER(order by Op_Num DESC) as rank_rn
          FROM  表名 where ConfChangeTime>= '2021-10-08' group by Lot_Num,Part_Num,Op_Num
     )
SELECT Lot_Num,Part_Num,Op_Num FROM SAPRank WHERE rank_rn <= 5;
--  个人测试这样写效率更高  group by Lot_Num,Part_Num,Op_Num 只是用来去重

四、 根据指定字段进行数据分组,分组后将 指定字段合并显示。
实际效果:
在这里插入图片描述

select 
LN=STUFF((SELECT ';' + LN FROM 表名 t WHERE Related = t1.Related FOR XML PATH('')), 1, 1, ''),
PN=STUFF((SELECT ';' + PN FROM 表名 t WHERE Related = t1.Related FOR XML PATH('')), 1, 1, ''),
Op=STUFF((SELECT ';' + Op FROM 表名 t WHERE Related = t1.Related FOR XML PATH('')), 1, 1, ''),
Related, MAX(ID) as ID 
from 表名 as t1
     where 1 = 1
     and [Date] >= '2021-10-12 00:00:00'
     and department like N'%Plating%'
     and [Date] <= '2021-12-22 23:59:59'
     group by Related

五、生成时间戳
DATEDIFF() 函数
DATEDIFF(时间间隔类型,开始时间,结束时间) 是用来返回时间间隔的
通常将开始时间指定为 格林威治 时间,将时间间隔类型设置为 秒 还是毫秒 看自己需求。通过这个方式可以确定为时间戳
时间间隔类型:
在这里插入图片描述

select  DATEDIFF(S,'1970-01-01 08:00:00','2018-07-06 14:43:09')
-- 将数据库里的时间数据转为时间戳
update set 时间戳字段 = DATEDIFF(s,'1970-01-01 08:00:00',实践类型字段)

六、替换指定内容

update iexec.local_quality_common.pcp_master set Mail_Group = replace(Mail_Group,'被替换内容','新内容')
where PC_ID = 4966
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值