1  实现对字符串的Spilt功能。 比如查出“I have a dream!”总共有几个单词,需要以' '分割,然后再求出总数。

ALTER function [dbo].[fc_SpiltString]
(
@str varchar(1024), --要分割的字符串
@split varchar(10) --分隔符号
)
returns int
as
begin
declare @location int
declare @start int
declare @length int set @str=ltrim(rtrim(@str))
set @location=charindex(@split,@str)
set @length=1
while @location<>0
begin
set @start=@location+1
set @location=charindex(@split,@str,@start)
set @length=@length+1
end
return @length
end
GO

2 表连接进行增删改

--INSERT
INSERT INTO [TABLE1]([ID],[NAME],[ClassName])
SELECT S.ID,S.NAME,C.[ClassName] FROM
[STUDENT] AS S INNER JOIN [CLASS] AS C
ON S.CID=C.ID --UPDATE
UPDATE S SET S.NAME='XXX' FROM [STUDENT] AS S
INNER JOIN [CLASS] AS C
ON S.CID=C.ID WHERE .. --DELETE
DELETE S FROM [STUDENT] AS S
INNER JOIN [CLASS] AS C
ON S.CID=C.ID WHERE ..

3 对临时表的基本操作(insert into #temp和select * into #temp )具体实现语句不写,只写怎么判断。

IF (object_id('tempdb..#Temp') is  null  )
BEGIN
CREATE TABLE #Temp(
Name nvarchar(50) not null, )
END
ELSE
BEGIN
TRUNCATE TABLE #Temp
END

4 开启sql执行统计功能

set statistics io on
set statistics time on
set statistics profile on

5 except 代替not in

 select distinct [name] from [T] except select  [name] from [T2]
select [name] [name]from [T] where TgtCulture not in (select [name] from [T2])

性能对比

T2:Scan count 1, logical reads 3009
T:Scan count 1, logical reads 2968, SQL Server Execution Times:
CPU time = 124 ms, elapsed time = 127 ms. T2:Scan count 7, logical reads 152215
T:Scan count 3, logical reads 3256
SQL Server Execution Times:
CPU time = 311 ms, elapsed time = 183 ms.

关于排序聚合函数:

row_number()  无重复不可并列的排序;

Rank()  相等的数据并列排序;

over (partition by xx) 按照XX 分组  效果等同于 Group by ;

下面的句子是  按照工资从大到小并且可以并列排名 给每个班级进行排名

select  saray, name,groupid,rank() over(partition by groupid order by saray desc) rankId from [UserSarary]

表变量(把表当作参数执行方法或者存储过程)

--建立自定义表类型
create type MyTableV as table (ID int null)
--建立存储过程
create PROCEDURE [dbo].[temptest](
@Source as MyTableV readonly,
@table as MyTableV readonly
)
as
begin
select * from @source;
select * from @table
end
--声明表变量 @source 第一个参数
DECLARE @source TABLE(ID INT)
declare @source MyTableV
insert into @source values(3)
--声明表变量 @table 第二个参数
DECLARE @table TABLE(ID INT)
declare @table MyTableV
insert into @table values(31)
--执行存储过程
exec [temptest] @source,@table

  

  

记录下最近项目中常用到的SQL语句的更多相关文章

  1. 项目开发中常用到的SQL语句

    阅读目录 循环示例 循环示例 循环示例 循环示例 1.循环示例 在前端面试中最常见的问题就是页面优化和缓存(貌似也是页面优化),被问了几次后心虚的不行,平然平时多少会用到一些,但突然问我,很难把自己知 ...

  2. 收集一些工作中常用的经典SQL语句

    作为一枚程序员来说和数据库打交道是不可避免的,现收集一下工作中常用的SQL语句,希望能给大家带来一些帮助,当然不全面,欢迎补充! 1.执行插入语句,获取自动生成的递增的ID值 INSERT INTO ...

  3. 在springboot 和 mybatis 项目中想要显示sql 语句进行调试

    在springBoot+Mybatis日志显示SQL的执行情况的最简单方法就是在properties新增: logging.level.com.dy.springboot.server.mapper= ...

  4. 记录下项目中常用到的JavaScript/JQuery代码二(大量实例)

    记录下项目中常用到的JavaScript/JQuery代码一(大量实例) 1.input输入框监听变化 <input type="text" style="widt ...

  5. 项目中常用的MySQL 优化

    本文我们来谈谈项目中常用的MySQL优化方法,共19条,具体如下: 一.EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划. 下面来个简单的示例,标注(1.2.3.4.5)我 ...

  6. 项目中常用js方法整理common.js

    抽空把项目中常用js方法整理成了common.js,都是网上搜集而来的,大家一起分享吧. var h = {}; h.get = function (url, data, ok, error) { $ ...

  7. Swift 项目中常用的第三方框架

    Swift 项目中可能用到的第三方框架 字数1004 阅读4091 评论17 喜欢93 这里记录下swift开发中可能用的框架 , 最近浏览了不少,积累在这里,以后用的时候方便查阅.顺便推荐给大家! ...

  8. JAVA项目中常用的异常处理情况总结

    JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...

  9. JAVA项目中常用的异常知识点总结

    JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...

随机推荐

  1. Best Practices for Performance_4.Optimizing Battery Life 获取充电状态、电池信息,"sticky"类型的广播

    http://developer.android.com/training/monitoring-device-state/index.htmlhttp://developer.android.com ...

  2. java对xml文件的读取

    <?xml version="1.0" encoding="UTF-8"?> <body> <names type="1 ...

  3. java 用插入排序思想,对不规则数组排序。

    知道插入排序后,无意中发现,用插入排序思想,对不规则数组排序的排序 发现和许多大神写的不一样,大神写的简洁多了.--------

  4. 用python脚本通过excel生成文件夹树结构

    大概这样写标题是对的吧... 目标: 通过excel目录结构文档生成文件夹树结构. 也就是: 通过下面的excel

  5. GNOME编辑器--gedit 构建基本脚本

    gedit factorial.sh myprog.c 当你启动gedit外带多个文件时,它会将所有的文件都加载到不同的缓冲区并在主编辑器窗口中按标签化的窗口来显示每个文件. shell脚本的关键在于 ...

  6. dom4J 学习

    Java给我们提供了标准的W3C接口实现,已完成对XML的处理.主要有两大类,分别是DOM操作,SAX解析.DOM可以将XML加载到内存中,对XML进行方便的增删查改.由于是将整个XML都加载到内存中 ...

  7. The project: project which is referenced by the classpath, does not exist.

    有个java工程运行时报The project: project which is referenced by the classpath, does not exist.错误 上网查解决方案,说是将 ...

  8. delphi cmd

    今天看到有人在问用代码执行CMD命令的问题,就总结一下用法,也算做个备忘. Delphi中,执行命令或者运行一个程序有2个函数,一个是winexec,一个是shellexecute.这两个大家应该都见 ...

  9. HTML5服务器推送消息的各种解决办法

    摘要 在各种BS架构的应用程序中,往往都希望服务端能够主动地向客户端推送各种消息,以达到类似于邮件.消息.待办事项等通知. 往BS架构本身存在的问题就是,服务器一直采用的是一问一答的机制.这就意味着如 ...

  10. Windows消息过滤

    在C#编程中,经常会遇到一些场景,如禁止鼠标拖动窗体,启用某些快捷键,禁止鼠标移动等.遇到这些需求,可以通过窗体的MouseMove事件,OnDragDrop,OnMove等事件来解决问题, 但是该方 ...