初级进阶版SQL语句总结(1)
来源:互联网 发布:我的世界手机版js插件 编辑:程序博客网 时间:2024/06/05 00:10
我不是专业的DBA,这里记录的都是一些常用的SQL技能点,为的是熟练掌握这些来提高我们的工作效率,如果想系统学习SQL的话,那恐怕要让您失望了。
1、case项作为排序条件
case常常被用来对字段内容进行转换,除此之外还能用作排序条件,这种用法我之前用的不多,记录下来希望对大家有帮助。
select * from Sys_Module where ModuleCode=2589 or ParentCode=2589order by case ModuleCode when 2595 then 1 else 0 end desc,ModuleCode desc
除了通过case单列进行排序外,还可以按照多列进行混合排序
select * from Sys_Module where ModuleCode=2589 or ParentCode=2589order by case when ParentCode=30 then 2 when ModuleCode=2595 then 1 else 0 end desc,ModuleCode desc
2、CharIndex函数
在一个表达式中搜索另一个表达式,如果找到则返回其起始位置,如果找不到则返回0。
注意:返回的起始位置从 1 开始,而不是从 0 开始。
语法:
CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )
expressionToFind
是字符表达式,其中包含要查找的序列。 expressionToFind限制为 8000 个字符。
expressionToSearch
是要搜索的字符表达式。
start_location
是整数或bigint开始搜索的表达式。 如果start_location未指定、 为负数,或为 0,则从expressionToSearch首字母处开始搜索。
select *,CHARINDEX(',6661,',','+StoreNO+',') as CharIndex from StoreInfoselect *,CHARINDEX(',6661,',','+StoreNO+',',0) as CharIndex from StoreInfoselect *,CHARINDEX(',6661,',','+StoreNO+',',1) as CharIndex from StoreInfo
运行截图如下:
select *,CHARINDEX(',6661,',','+StoreNO+',',2) as CharIndex from StoreInfo
运行截图如下:
3、CONVERT函数
在做查询页的时候,有时会需要查询某天的内容,比如查询2017/11/21这一天的信息,我们可以使用date>2017/11/21 00:00:00 and date<=2017/11/22 00:00:00,我觉得这个有点麻烦想找个一句话就能搞定的方法,就有了下边的知识点。
select Id,UserName,CreateDate,CONVERT(nvarchar(10),CreateDate,120) from Sys_Userwhere CONVERT(nvarchar(10),CreateDate,120)='2017-11-16'
截图如下:
select Id,UserName,CreateDate,CONVERT(nvarchar(10),CreateDate,111) from Sys_Userwhere CONVERT(nvarchar(10),CreateDate,111)='2017/11/16'
截图如下:
4、DATEADD()
DATEADD() 函数可以在日期中添加或减去指定的时间间隔。
select UserName,UserPwd,Sex,CreateDate,DATEADD(YEAR,1,CreateDate) from Sys_Userselect UserName,UserPwd,Sex,CreateDate,DATEADD(MONTH,1,CreateDate) from Sys_Userselect UserName,UserPwd,Sex,CreateDate,DATEADD(DAY,1,CreateDate) from Sys_Userselect UserName,UserPwd,Sex,CreateDate,DATEADD(HOUR,-1,CreateDate) from Sys_Userselect UserName,UserPwd,Sex,CreateDate,DATEADD(MINUTE,-1,CreateDate) from Sys_Userselect UserName,UserPwd,Sex,CreateDate,DATEADD(SECOND,-1,CreateDate) from Sys_User
DATEADD(YEAR,1,CreateDate)截图如下:
DATEADD(HOUR,-1,CreateDate)截图如下:
5、DATEDIFF()
DATEDIFF() 函数返回两个日期之间的时间差。
语法:DATEDIFF(datepart,startdate,enddate)
时间差:enddate-startdate
select UserName,UserPwd,Sex,CreateDate,DATEDIFF(YEAR,CreateDate,GETDATE()) from Sys_Userselect UserName,UserPwd,Sex,CreateDate,DATEDIFF(MONTH,CreateDate,GETDATE()) from Sys_Userselect UserName,UserPwd,Sex,CreateDate,DATEDIFF(DAY,CreateDate,GETDATE()) from Sys_Userselect UserName,UserPwd,Sex,CreateDate,DATEDIFF(HOUR,CreateDate,GETDATE()) from Sys_Userselect UserName,UserPwd,Sex,CreateDate,DATEDIFF(MINUTE,CreateDate,GETDATE()) from Sys_Userselect UserName,UserPwd,Sex,CreateDate,DATEDIFF(SECOND,CreateDate,GETDATE()) from Sys_User
DATEDIFF(DAY,CreateDate,GETDATE())截图如下:
DATEDIFF(HOUR,CreateDate,GETDATE())截图如下:
6、待发现
DATEDIFF() 函数返回两个日期
- 初级进阶版SQL语句总结(1)
- SQL语句总结大全--初级
- 数据库初级SQL语句
- sql初级语句
- sql 语句总结版
- SQL语句进阶
- sql语句进阶篇
- SQL语句进阶
- SQL进阶语句
- SQL语句进阶
- 数据库开发---SQL语句总结(1)
- sql语句个人总结1
- 常用SQL语句总结(1)
- 常用SQL语句总结(1)
- sql初级语法 笔记总结
- SQL Server学习总结--初级
- SQL注入语句进阶学习
- sql进阶部分语句整理
- #深入理解System V原理
- android6.0视频录制时显示全屏并且半透明
- 线性回归
- [一日一教学](22)清理CMD屏幕上的信息:cls
- 深度学习在信息隐藏中的应用(上)
- 初级进阶版SQL语句总结(1)
- CodeForces
- 基于keepalived+LVS-NAT实现——高可用的负载均衡架构
- eclipse 添加jdk9
- 【知识整理】Node.js-Koa之路由
- 【LintCode-67】二叉树的中序遍历(Java实现-递归算法/非递归算法)
- Android os体系架构
- 欢迎使用CSDN-markdown编辑器
- cell 中添加控件self.addSubview()与self.contentView.addSubview()的区别