平时常用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('',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' --获取表tableName中所有的列名,并用组合。写insert的时候简直不要太爽
SELECT STUFF((SELECT ','+name
FROM syscolumns
WHERE id = OBJECT_ID('tableName')
ORDER BY colorder --colorder:按照列的添加顺序 name:按照列名顺序
FOR xml path('')),1,1,'')
平时常用sql的更多相关文章
- Mysql常用sql语句(八)- where 条件查询
测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...
- Mysql常用sql语句(18)- union 全连接
测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 其实Mysql并没有全连接,Oracle才有全连 ...
- mysql使用 分区表使用,常用sql
mysql使用 分区表使用,常用sql 前言 本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/84839478未经博主允许不得转载 ...
- Mysql 常用 SQL 语句集锦
Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...
- oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数
花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ...
- 常用SQL[ORACLE]
1.常用系统函数 2.常用sql语句 3.一些定义和关键字 4.需要注意点 1.常用系统函数 ↑ --decode decode(column,if_value,value,elseif_ ...
- Oracle常用SQL查询(2)
三.查看数据库的SQL 1 .查看表空间的名称及大小 select t.tablespace_name, round ( sum (bytes / ( 1024 * 1024 )), 0 ) ts ...
- Oracle常用SQL查询
一.ORACLE的启动和关闭 1.在单机环境下要想启动或关闭oracle系统必须首先切换到oracle用户,如下: su - oracle a.启动Oracle系统 oracle>svrmgrl ...
- Mysql 常用 SQL 语句集锦 转载(https://gold.xitu.io/post/584e7b298d6d81005456eb53)
Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...
随机推荐
- RESTful API的理解
技术交流的时候遇到了这样的一个问题,被问及开发中用到的是不是Restful API,我说的是,我们现在用到的不属于完全是Restful API.因为我了解到的Restful API,是 通过具体的UR ...
- SpringBoot:带你认认真真梳理一遍自动装配原理
前言 Spring翻译为中文是“春天”,的确,在某段时间内,它给Java开发人员带来过春天,但是随着我们项目规模的扩大,Spring需要配置的地方就越来越多,夸张点说,“配置两小时,Coding五分钟 ...
- JPA-@MappedSuperclass
今天阅读前辈的代码时,发现一个新的注解 @MappedSuperclass ,下面就来了解下它是干什么的: 首先官方文档给出的解释是: Designates a class whose mapping ...
- 浅谈ZooKeeper基本原理与源码分析
最近一直有小伙伴私信我,问一些关于Zookeeper的知识,下边关于的Zookeeper的知识整理了一下,一起学习一下. 看完本文对于Zookeeper想深入全面了解的读者朋友们,小编这里整理了一份更 ...
- 洛谷P2085——最小函数值
题目描述 有n个函数,分别为\(F_1,F_2,...,F_n\).定义\(F_i(x)=A_i*x^2+B_i*x+C_i (x∈N*)\).给定这些\(A_i.B_i和C_i\),请求出所有函数的 ...
- js对象的浅拷贝与深拷贝
浅拷贝和深拷贝都是对于JS中的引用类型而言的,浅拷贝就只是复制对象的引用(堆和栈的关系,原始(基本)类型Undefined,Null,Boolean,Number和String是存入堆,直接引用,ob ...
- 第八次作业-非确定的自动机NFA确定化为DFA
NFA 确定化为 DFA 子集法: f(q,a)={q1,q2,…,qn},状态集的子集 将{q1,q2,…,qn}看做一个状态A,去记录NFA读入输入符号之后可能达到的所有状态的集合. 步骤: 1. ...
- luogu P3572 [POI2014]PTA-Little Bird
题目描述 从1开始,跳到比当前矮的不消耗体力,否则消耗一点体力,每次询问有一个步伐限制,求每次最少耗费多少体力 单调队列优化动态规划 #include<cstdio> #include&l ...
- python数据挖掘第二篇-爬虫
python爬虫 urllib用法 eg1: from urllib import request data = request.urlopen(urlString).read() # data获取的 ...
- jQuery操作页面的元素
主要有添加,替换,删除,清空三种方式: 添加又分为,在之前添加,在之后添加,在元素外之前添加,在元素外之后添加.每个添加方式又有俩种方法(效果一模一样): 俩种方法区添加,在原内容之后: p.appe ...