sql server(常用)

普通用法

//生成 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'

clipboard.png

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

clipboard.png

视图

存储过程

优点:

   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;

函数

表值函数

标量值函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/275905.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TypeScript 原来可以这么香?!

先问一个问题,JavaScript有几种数据类型?number、string、boolean、null、undefined、symbol、bigint、object其中 bigint 是 ES2020 新增的数据类型,而早在 TS3.2 时便成为 TS 的标准,其实还有好多 ES 标准是 TS 率先提出的&…

java8新特性stream深入解析

2019独角兽企业重金招聘Python工程师标准>>> 继续java8源码的发烧热,越看越是有充实的感觉。 数据时代下的产物 Java顺应时代的发展推出的高效处理大量数据能力的api,它专注于对集合对象进行各种非常便利、高效的聚合操作,借助于同…

版式设计与创意 pdf_恋爱与版式

版式设计与创意 pdfSince its beginnings, Libération has been characterized by a very distinctive use of typeface, to such an extent that Libé has put its mark on fonts from across different eras, appropriating these in a certain way.小号因斯它的起点&…

移动网站开发——标记语言

移动互联网被称为“第五次科技革命”,而随着iPhone和Android等智能手机的日渐流行和iPad等平板电脑的出现,移动互联网的潜力和趋势也愈发显现,针对移动设备的网站开发越来越受到关注,国内很多公司也开始重视面向所有移动设备的网站…

前端技术未来三年前瞻性思考

大家好,我是若川。今天推荐云谦大佬的一篇好文章,值得收藏。点击下方卡片关注我、加个星标,或者查看源码等系列文章。学习源码整体架构系列、年度总结、JS基础系列习惯从业务场景、用户体验、研发速度、维护成本四个维度来看框架等前端技术&a…

微信临时素材接口_在接口中表达临时性

微信临时素材接口When interacting with today’s graphic user interfaces (GUI), we experience a sense of realism. As of now, certain aspects of realism (for example animations) create the appearance that user interface graphics behave in accordance with the …

GitHub 支持上传视频文件啦!

大家好,我是若川。今天周六,分享一篇热点新闻。文章较短,预计5分钟可看完。近日 Github 宣布支持了视频上传功能,意味着,大家在提 issue 时可以携带视频了,这极大地提高了开发者和维护者的效率,…

ui设计 网络错误_UI设计人员常犯的10个错误

ui设计 网络错误重点 (Top highlight)1.不考虑范围 (1. Disregarding scope)It’s not uncommon for designers to introduce features that will overcomplicate the development process while bringing no additional value to the application. Focusing on the business o…

小程序 node.js mysql_基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)...

高仿网易严选的微信小程序商城(微信小程序客户端)界面高仿网易严选商城(主要是2016年wap版)测试数据采集自网易严选商城功能和数据库参考ecshop服务端api基于Node.jsThinkJSMySQL计划添加基于Vue.js的后台管理系统、PC版、Wap版项目截图功能列表首页分类…

推荐几个干货超多助你成长的前端大佬

不得不说,如今比前些年学习资料多很多了。现在的前端公众号也挺多的,这里推荐几个前端大佬运营的公众号,都是聚焦前端垂直领域的优质公众号,关注这些公众号至少可以:1、了解现在前端技术发展情况和未来发展趋势&#x…

背景图片_背景

背景图片A designer’s journey is one that’s littered with many portfolios. Many of which have been reduced to a mere 404 error page, an abandoned link or another archive in the folders. Recently, while updating my portfolio, all the forgotten versions tha…

解决《Mobile绘制背景图片》中的问题

与PC平台的开发相比,Mobile的开发麻烦了许多,至少这是我的感觉 。 谢谢--“ Fly Pig(^^)” 的文章《Mobile开发(绘制背景图片) 》 http://www.cnblogs.com/Bright-Liang/archive/2009/06/11/1501309.html 不过对于我这种低手来说&…

mysql 5.6.31 winx64_详解介绍MySQL5.6.31winx64.zip安装配置的图文教程

这篇文章主要介绍了MySQL5.6.31 winx64.zip 安装配置教程详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下#1. 下载##2.解压到本地 修改必要配置my*.ini#3.mysql installadmin模式启动cmdcd mysql目录/bin执行安装: mysqld -install启动…

如何使用Gitbook创建html技术文档

故事背景:很多时候对外发布的产品需要一份html格式的文档 首先要了解的是 word直接转成html是不现实的,需要通过md文件来转换。 我们本节课讨论的Gitbook即是在MD基础上进行操作的。 所以任务一:安装typora软件,用于编辑md文件&am…

徒手撸了个markdown笔记平台

大家好,我是若川。今天分享一篇markdown笔记平台的项目文章。点击下方卡片关注我、加个星标,或者查看源码等系列文章。学习源码整体架构系列、年度总结、JS基础系列一、前言作为开发者,我觉的用markdown写文档是一件很酷的事情。在之前&#…

This week I’ve been forging background illustrations for my website, epdillon.com (launching soon). I’ve been using Adobe Illustrator to do all the major casting, dabbling in Figma only to temper the colours. Fresh from the design furnace, my hands are a…

pyqt控件显示重叠_Python编程:一个不错的基于PyQt的Led控件显示库,建议收藏学习...

1、控件说明在Github上,偶然发现了一个基于PyQt5的第三方Led指示灯控件库,使用起来非常方便,控件外观也比较漂亮,更难能可贵的是作者源代码写得比较简洁,仅仅才约200行左右,可以作为一个在PyQt中写自定义控…

编写高质量可维护的代码:优雅命名

大家好,我是若川。今天分享一篇关于如何命名更优雅的文章。点击下方卡片关注我、加个星标,或者查看源码等系列文章。学习源码整体架构系列、年度总结、JS基础系列本文首发于政采云前端团队博客:编写高质量可维护的代码:优雅命名ht…

powerpoint技巧_几乎每个PowerPoint都烂鸡蛋

powerpoint技巧Almost 20 years ago — 2001! — Seth Godin wrote an ebook called Really Bad Powerpoint (and how to avoid it). In that book he detailed all of the things that tend to go wrong in slide presentations.差不多20年前-2001年! —塞斯戈丁(S…

认识mysql总结_从根上理解Mysql - 读后个人总结1-搜云库

初识 MySQL通信介绍MySQL 也是典型的 C / S 模型,分为客户端及服务端,服务端一般部署在远端服务器中,也可以部署至本地,然后客户端跟服务端通信则可以使用依赖网络的 TCP 长连接或 Unix-like 的系统下可以使用 Socket文件的形式通…