普通用法

//生成 uuid 并转为小写
select LOWER(SUBSTRING(uuid,1,8)+'-'+SUBSTRING(uuid,10,4)+'-'+SUBSTRING(uuid,15,4)+'-'+SUBSTRING(uuid,20,4)+'-'+SUBSTRING(uuid,25,12))
from (select cast(NEWID() as varchar(36)) as uuid) s  //ea52a7bb-a2aa-44b8-be28-5ebc64defcf9//获取时分秒
select DateName(hour,GetDate())+ DateName(minute,GetDate())+DateName(second,GetDate()) //143054//1000-9999随机数
select floor(9000*RAND()+1000)//日期格式化
select GETDATE()                            //2019-02-12 14:30:16.763
Select CONVERT(varchar(100), GETDATE(), 8)  //10:57:46
Select CONVERT(varchar(100), GETDATE(), 12) //060516
Select CONVERT(varchar(100), GETDATE(), 20) //2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21) //2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 23) //2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24) //10:57:47
Select CONVERT(varchar(100), GETDATE(), 25) //2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 102)//2006.05.16
Select CONVERT(varchar(100), GETDATE(), 111)//2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112)//20060516

进阶

order by

group by

我们经常会使用group by对查询的结果进行去重,但是在使用的过程中一定要确保 group by 里面要只是有一个唯一性的条件,否则极有可能把需要的条目去重了,导致查询结果异常,而且这个问题排查难度不小

联表查询

SQL查询多列合并一列

select ID,hosID +'/'+ hosCode +'/'+ name as '诊所编号/诊所Code/医生项目'
from Doctor where hosCode = 'xxxx'
//return: 71bfc474-7725-e8fb-ecbd-a204bbaxxxxx 15xx/A75xxx/宋xx

SQL查询将多行合并成一行(转载)

//将param1中自startIndex(SQL中都是从1开始,而非0)起,删除length个字符,然后用param2替换删掉的字符。
stuff(param1, startIndex, length, param2)

param1:一个字符数据表达式。param1可以是常量、变量,也可以是字符列或二进制数据列。
startIndex:一个整数值,指定删除和插入的开始位置。如果 startIndex或 length 为负,则返回空字符串。如果startIndex比param1长,则返回空字符串。startIndex可以是 bigint 类型。
length:一个整数,指定要删除的字符数。如果 length 比param1长,则最多删除到param1 中的最后一个字符。length 可以是 bigint 类型。

例如:

select STUFF('abcdefg',1,0,'1234')       --结果为'1234abcdefg'
select STUFF('abcdefg',1,1,'1234')       --结果为'1234bcdefg'
select STUFF('abcdefg',2,1,'1234')       --结果为'a1234cdefg'
select STUFF('abcdefg',2,2,'1234')       --结果为'a1234defg'

拓展:for xml path,将查询结果集以XML形式展现

现在想把两条数据通过PerworkSampleInfoId和Barcode合并成一条

select ID,PerworkSampleInfoId,Barcode, ApplyItemId,ApplyItemName,ItemPrice
from Perwork_SampleItem where Barcode = 'A75004xxxxxx'

select PerworkSampleInfoId,Barcode,(select STUFF((select ',' + ApplyItemName from Perwork_SampleItem where Barcode = a.Barcode for xml path('')),1,1,''        )) as ApplyItemNames,(select STUFF ((select sum(ItemPrice) from Perwork_SampleItem where Barcode = a.Barcode),1,0,''))as totalItemPrice
from Perwork_SampleItem a
where Barcode = 'A75004xxxxxx'
group by PerworkSampleInfoId,Barcode

视图

存储过程

优点:

   1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。

  2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。

  3.存储过程可以重复使用,可减少数据库开发人员的工作量

  4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权

缺点:

   1.如果更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以添加参数、更新 GetValue() 调用,等等,这时候估计比较繁琐了。

   2.可移植性差
由于存储过程将应用程序绑定到 SQL Server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。

基本用法:

//创建存储过程
use WEHealth
go
create procedure pro_test
@_code varchar(50)
as
IF ( @_code IS NOT NULL )select *from Hospitalwhere Code like '%'+@_code+'%';ELSEselect *from Hospital;
//调用存储过程
exec pro_test '101999';
exec pro_test null;

函数

表值函数

标量值函数

sql server(常用)相关推荐

  1. SQL Server常用的系统存储过程应用实例(转)

    摘要:Sql Server自带的系统存储过程有许多,但大部分我们是不常用的.我在实践中根据自己的体会,总结整理了一些比较常用的,加上一些实例介绍给大家.本期介绍: l         sp_attac ...

  2. SQL server常用查询

    SQL server常用操作 查询:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,v ...

  3. oracle sql常用的函数,界别Oracle和SQL Server常用函数

    区分Oracle和SQL Server常用函数 一.数学函数 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) ...

  4. SQL Server 常用更新语句,用B表数据作为条件或数据源更新A表数据

    SQL Server 常用更新语句,用B表数据作为条件或数据源更新A表数据 示例:用B表姓名覆盖A表姓名 假设: A表数据 Id,Name 1,张三 B表数据 Id,Name 1,李四 用下面这个语句 ...

  5. SQL Server常用的系统存储过程应用实例

    摘要:Sql Server自带的系统存储过程有许多,但大部分我们是不常用的.我在实践中根据自己的体会,总结整理了一些比较常用的,加上一些实例介绍给大家.本期介绍: l         sp_attac ...

  6. sql server 常用的扩展存储过程

    sql server 里面提供了丰富的系统存储过程来辅助我们管理数据库以及开发.今天分享介绍一些常用的数据库扩展存储过程 xp_cmdshell 这个大家都比较熟悉了,使用xp_cmdshell 可以 ...

  7. sql server常用函数、常用语句

    一.常用函数 1.字符串函数 : charindex(':','abc:123')    --寻找一个字符在一段字符串中起始的位置 len('zhangsan')   --获取一段字符串的长度 lef ...

  8. Sql Server常用函数及技巧

    使用Sql Server好长时间了,今天特别想总结一下,算是回顾吧! 总结: 其实很多技巧,都是基于SQL Server自带的System Views,System Stored Procedures ...

  9. Sql Server常用时间段查询汇总

    前言 本文对应Sql Server 中常用的时间查询的进行一些汇总,例如查询当天的.本周的.本月的.本季度的,某个时间段内的时间. 实例 实例(我的)表名:mytable 字段名:mydate (一) ...

  10. 数据库SQL SERVER常用命令说明

    转载自https://blog.csdn.net/xf_yan/article/details/80464835: 一.基础 1.说明:创建数据库 CREATE DATABASE database-n ...

最新文章

  1. 用buildout来构建python项目
  2. 这38篇原创文章,带我入门深度学习!
  3. NIO详解(十):FileChannel零拷贝技术
  4. irobot扫地机器人 电压_【专利技术分析报告】“iRobot扫地机器人”核心专利
  5. 【转】1.7异步编程:基于事件的异步编程模式(EAP)
  6. 2.9 iframe
  7. 设置屏幕分辨率的函数 - 回复 董勇 的问题
  8. projective2d matlab
  9. 数据结构和算法(十三)排序算法
  10. 基于eclipse的android项目实战—博学谷(一)欢迎界面
  11. 设计测测试用例的五大方法
  12. SQL高级查询—实验报告
  13. ensp中ap获取不到ip_ensp wlan实验,sta无法获取IP地址?
  14. 新猿木子李:0基础学python培训教程 Python操作Redis
  15. BPMN 2.0规范
  16. poi 公式转 图片_三阶魔方公式符号图解V2.0(2017/12/15)_碧海风云
  17. 看淡生死,弥争当下!
  18. Element select表单必填验证
  19. 108个Python精选库,看完收获丰富
  20. 教你搭个助我大学拿Offer的面试项目

热门文章

  1. Linux 编译运行查找头文件和库的顺序
  2. 计组-数据通路的功能和基本结构
  3. C语言位运算,醍醐灌顶式教学
  4. VC 对话框 DIALOG
  5. windows下安装nginx
  6. IDEA控制台输出中文乱码日志文件正常
  7. 2.11.1.移植前的准备工作
  8. 【Luogu3383】【模板】线性筛素数
  9. Day20:绑定方法与非绑定办法、多态和多态性
  10. JavaScript 对象与数组参考大全