平时常用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

相关推荐

  • 巨杉数据库公司待遇_巨杉数据

    巨杉数据库公司待遇_巨杉数据课程背景和规划介绍 巨杉大学的学习和认证包括SCDA(巨杉数据库认证技术专员),SCDP(巨杉数据库中级工程师认证),SCDE(巨杉数据库高级工程师认证),SCDD(巨杉数据库认证开发者)等计划,未…

    2023-02-09
    105
  • localthread用法_速度是位移的导数

    localthread用法_速度是位移的导数1. LOAD DATA INFILE 为什么比 INSERT 快?
    2. sysbench 压测 MySQL 的四个标准步骤。
    3. 怎么让 sysbench 支持 LOAD DATA LOCAL

    2023-05-11
    103
  • “mysql”_MySQL入门

    “mysql”_MySQL入门MYSQL(基本篇)——一篇文章带你走进MYSQL的奇妙世界 MYSQL算是我们程序员必不可少的一份求职工具了 无论在什么岗位,我们都可以看到应聘要求上所书写的”精通MYSQL等数据库及优化“ 那么我

    2023-05-29
    95
  • MySQL关于命令的问题、Exists关键字[通俗易懂]

    MySQL关于命令的问题、Exists关键字[通俗易懂]truncate 与 delete 的区别 truncate table :删除内容、不删除定义、释放空间。 delete table : 删除内容、不删除定义、不释放空间。 drop table :

    2023-02-10
    102
  • Python中使用元组进行不可变序列操作

    Python中使用元组进行不可变序列操作元组(Tuple)是Python中的一种不可变类型序列,用于存储一组数据。元组的创建方式与列表相似,用小括号 “( )” 将元素括起来,多个元素之间用逗号 “,” 隔开。虽然元组和列表都是序列类型,但元组不可变的特性使其在某些场景下具有优势,尤其是在保证数据不被修改的情况下,可以提高代码的安全性和效率。

    2023-12-06
    69
  • mysql Navicat Premium 中创建数据库、用户[通俗易懂]

    mysql Navicat Premium 中创建数据库、用户[通俗易懂]下面讲解常见 Navicat Premium中创建用户与数据库的命令。 #用root登录数据库 #创建库 create database XXX;#创建用户 create user &#39

    2023-02-04
    105
  • 解决PS闪退问题

    解决PS闪退问题Photoshop(简称PS)是一款功能强大的图像编辑软件,它被广泛应用于广告、摄影和设计等领域。但是,有时候我们可能会遇到PS闪退的问题,这会影响到我们的工作效率。本文将从多个方面探讨PS闪退问题的原因及解决方法。

    2024-05-07
    15
  • SQL语句中的日期查询

    SQL语句中的日期查询SQL语句中的日期查询 YYYY –当前年份第一天的前一天 SELECT TRUNC(SYSDATE,'yyyy') – 1 + 8 / 24 FROM DUAL 2019/12/3

    2023-03-03
    115

发表回复

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