平时常用sql_sql常用函数

平时常用sql_sql常用函数总结一下平时用到最多的sql语句 1.特殊日期 –今天凌晨SELECT DATEADD(dd,DATEDIFF(dd,0,GETDATE()),0)–明天凌晨SELECT DATEADD(dd,D

 

总结一下平时用到最多的sql语句

 

1.特殊日期

–今天凌晨
SELECT DATEADD(dd,DATEDIFF(dd,0,GETDATE()),0)
–明天凌晨
SELECT DATEADD(dd,DATEDIFF(dd,0,GETDATE())+1,0)
–当周周一(每周从周日开始)
SELECT DATEADD(wk,DATEDIFF(wk,0,GETDATE()),0)
–当月的第一天
SELECT DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0)
–当月的最后一天
SELECT DATEADD(dd,-1,DATEADD(mm,DATEDIFF(mm,0,GETDATE())+1,0))
–今年的第一天
SELECT DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0)
–今年的最后一天
SELECT DATEADD(dd,-1,DATEADD(yy,DATEDIFF(yy,0,GETDATE())+1,0))

2.字符串处理

–去除空格
SELECT LTRIM(col1),RTRIM(col2),LTRIM(RTRIM(col3)) FROM tableName

SELECT
SUBSTRING(col1,3,2) –从第3个字符开始截取2个,得到截取的2个字符
,STUFF(col2,3,2,””)–从第3个字符开始删除2个,得到剩下字符
,STUFF(col3,3,2,”XXX”)–从第3个字符开始,将第3、4两个字符替换成XXX
,REPLACE(col4,”old”,”new”)–将col4中的old全部替换成new
FROM tableName

–将列col1用,拼接起来
SELECT STUFF((SELECT “,”+col1 FROM tableName WHERE 过滤条件 FOR XML PATH(“”)),1,1,””)

–多位流水号,用0或空格补充 例如A000001,A000002……,前缀可为固定字符,或者可变的年、月、日等

DECLARE @flowNo AS VARCHAR(10)
DECLARE @nextNo AS int
SELECT @flowNo = MAX(flowNo) FROM tableName WHERE 过滤条件
IF(@flowNo IS null)
SET @flowNo = “A000001”
ELSE
BEGIN
SET @nextNo = RIGHT(@flowNo,6)+1
SET @flowNo = LEFT(@flowNo,1)+REPLICATE(“0”,6-LEN(@nextNo))+CONVERT(VARCHAR(6),@nextNo)
END
SELECT @flowNo;–要获取的流水号

 

–年 2001对应1,2009对应9,2010对应A,2035对应Z,2035之后的可自行调整
SELECT SUBSTRING(“123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”,(YEAR(GETDATE())-2000)%36,1)

–月 10月,11月,12月分别对应A,B,C
SELECT SUBSTRING(“123456789ABC”,MONTH(GETDATE()),1)

–月 英文简写
SELECT SUBSTRING(“JanFebMarAprMayJunJulAugSepOctNovDec”,(MONTH(GETDATE())-1)*3+1,3)

–日 1号对应1,9号对应9,10号对应A,以此类推
SELECT SUBSTRING(“123456789ABCDEFGHIJKLMNOPQRSTUV”,DAY(GETDATE()),1)

 

3.辅助

–去除重复数据,数据表中有很多重复数据,如果其中col1,col2,col3,col4,col5可以表示出每一组重复数据
;WITH cte AS
(SELECT col1,col2,col3,col4,col5
,ROW_NUMBER()OVER(PARTITION BY col1,col2,col3,col4,col5 ORDER BY col1) AS rn
FROM tableName)
DELETE FROM cte WHERE rn > 1

–快速打开存储过程、视图等
sp_helptext 存储过程名称 –名称前不要加dbo.等所有者
sp_helptext 视图名称 –名称前不要加dbo.等所有者

–用到了某些字符串的视图,存储过程
SELECT a.name,b.[text]
FROM sysobjects a
INNER JOIN syscomments b ON a.id = b.id
WHERE b.[text] LIKE “%你要查的字符串%”
AND a.xtype=”v”–“p”

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10450.html

(0)
上一篇 2022-12-27
下一篇 2022-12-27

相关推荐

  • Python实现列表转字典

    Python实现列表转字典在Python编程中,将列表转换为字典是一个实用的技能。字典是Python中最常用的数据结构之一,列表是另一个重要的数据结构。将列表转换为字典是将数据从列表形式转换为字典形式的过程。字典表示键-值对的集合,每个键都是独特的、不可变的,作为字典的键可用于索引字典的值。

    2024-09-10
    26
  • 大数据技术之Hive 第5章 DML数据操作语言「建议收藏」

    大数据技术之Hive 第5章 DML数据操作语言「建议收藏」第5章 DML数据操作 5.1 数据导入 5.1.1 向表中装载数据(Load) 1)语法 hive> load data [local] inpath '数据的path' [o

    2023-05-21
    148
  • docker compose实战_Docker

    docker compose实战_Docker一、 概述 compose 是用来定义和运行一个或多个容器(通常都是多个)运行和应用的工具。使用 compose 可以简化容器镜像的构建以及容器的运行。 compose 使用 YAML 文件来定义多容

    2023-05-20
    134
  • 并发执行sql_blockingqueue 多线程

    并发执行sql_blockingqueue 多线程来源:http://www.postgres.cn/docs/11/ 13.2.1. 读已提交隔离级别 读已提交是PostgreSQL中的默认隔离级别。 当一个事务运行使用这个隔离级别时,

    2023-02-26
    140
  • Java中使用Jedis连接Redis对Set进行操作的常用命令「建议收藏」

    Java中使用Jedis连接Redis对Set进行操作的常用命令「建议收藏」场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re

    2023-02-08
    156
  • Python命令行参数解析工具

    Python命令行参数解析工具在Python中,我们通常需要对命令行输入的参数进行解析,以便程序可以根据用户提供的参数执行相应的操作。手动编写参数解析代码既困难又容易出错,因此使用命令行参数解析工具可以方便的处理这些任务。

    2023-12-05
    121
  • 为什么要避免大事务以及大事务如何解决?[通俗易懂]

    为什么要避免大事务以及大事务如何解决?[通俗易懂]什么是大事务 运行时间比较长,长时间未提交的事务就可以称为大事务 大事务产生的原因 操作的数据比较多 大量的锁竞争 事务中有其他非DB的耗时操作 。。。 大事务造成的影响 并发情况下,数据库连接池容易

    2023-03-22
    153
  • SQL存储过程简介「建议收藏」

    SQL存储过程简介「建议收藏」存储过程概述 存储过程是完成特定功能的一组SQL语句,它是数据库的一种可编程对象,类似于函数 其快速、灵活、安全 系统存储过程 SQL sever 内置的存储过程,存储在master库中,主要用于执行

    2023-03-04
    162

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注