我的编程空间,编程开发者的网络收藏夹
学习永远不晚

平时常用sql

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

平时常用sql

 

总结一下平时用到最多的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"

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

平时常用sql

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

平时常用sql

总结一下平时用到最多的sql语句 1.特殊日期--今天凌晨SELECT DATEADD(dd,DATEDIFF(dd,0,GETDATE()),0)--明天凌晨SELECT DATEADD(dd,DATEDIFF(dd,0,GETDATE())+1,0)--当
2022-01-17

常用sql

1 查询一段时间前的时间Oracle 数据库-- 查询一个月前的数据SELECT t.CREATE_DATE FROM T_WEB_CORP tWHERE TO_CHAR(t.CREATE_DATE,"YYYY-MM")<=TO_CHAR(ADD_MONTH
2018-11-13

常用的sql

数据重复了,只需要其中一条-- id 重复了,取出其中一条SELECT id,member_seq,point,gmt_createFROM XXXXWHERE             and gmt_create > "2020-07-20 00:00:00
常用的sql
2017-03-14
2024-04-02
2023-10-23

SQL 常用函数使用

Distinct 去重复。性能上和 GROUP BY 差异据说有点点优势,GROUP BY 存在毕竟不是用来去重的,GROUP BY 用作分组,当然可以做去重动作 select DISTINCT [列1],[列2]... from [数据库].[dbo].[表
SQL 常用函数使用
2017-12-08

Hive sql常用函数

1.获取当前日期 如2020-13-22current_date() 或者current_date获取当前时间:from_unixtime(unix_timestamp()) 返回格式:yyyy-MM-dd HH:mm:ss      :current_tim
Hive sql常用函数
2016-12-22

oracle常用SQL记录

select name,lcount from sys.user$ 2、查看用户是否被锁 select username,account_status,lock_date from dba_users; 3、查看锁定账户登陆失败次数配置   select *
oracle常用SQL记录
2021-02-22

Mysql常用SQL语句

基础篇 //查询时间,友好提示$sql = "select date_format(create_time, "%Y-%m-%d") as day from table_name"; //int 时间戳类型$sql = "select from_unixti
Mysql常用SQL语句
2020-08-31

oracle常用SQL语句

+ ",(select LISTAGG(mo.model_code,",") within group(order by mo.model_code) from srm_pos_resource_model mo where mo.supplier_id=t.
oracle常用SQL语句
2014-10-15

编程热搜

目录