SQL Server进阶(十四)常用函数

FOR XML PATH

利用 T-sql 的从句 for xml path(‘‘) 实现多行合并到一行, 并带有分隔符

https://blog.csdn.net/rav009/article/details/50723307

 SELECT ‘,‘ + au.UserCode FROM dbo.AcceptanceUser au  FOR XML PATH (‘‘)
 SELECT  STUFF((SELECT ‘,‘ + au.UserCode FROM dbo.AcceptanceUser au  FOR XML PATH (‘‘)), 1, 1, ‘‘)
select GETDATE()
select STR(YEAR(GETDATE()))
select RTRIM(STR(YEAR(GETDATE())))
select LTRIM(RTRIM(STR(YEAR(GETDATE()))))

WITH (NOLOCK)

除了简单的SELECT之外,有JOIN的SELECT语法也是可以使用的。但是DELETE、INSERT、UPDATE这些需要transaction的指令就不行了

 @@IDENTITY

Select SCOPE_IDENTITY()   

  返回上面操作最后一个数据表的最后row的IDENTITY 列的值;

isnull()函数:

isnull(value1,value2)

1、value1与value2的数据类型必须一致。

2、如果value1的值不为null,结果返回value1。

3、如果value1为null,结果返回vaule2的值。vaule2是你设定的值。

Replace

WITH  表名字  AS 

with table1 as
(
    select * from Student where sage < 30
)
select * from table1  --  使用了名为table1的公共表表达式

RowNumber

Convert

DISTINCT

if...eles

IF(条件表达式)
  BEGIN --相当于C#里的{
    语句1
  ……
  END --相当于C#里的}
ELSE
 BEGIN
    语句1
    ……
  END

declare

DECLARE @sql VARCHAR(8000)
DECLARE @start_row_num AS INT

case

select SName,Sage=(
    case Sage
        when 17 then ‘小‘
        when 18 then ‘正好‘
        when 19 then ‘大‘
    end
)
from [SCST].[dbo].[Student]

dense_rank()

SELECT dense_rank() OVER (ORDER BY u.TotalValue DESC) AS Rank,

select和SET的区别

CAST 和 CONVERT

SELECT CAST(SYSDATETIME() AS DATE);
SELECT CONVERT(CHAR(8),CURRENT_TIMESTAMP,112);
   select CAST(CONVERT(VARCHAR(12), getdate(), 111) AS DATE)

需要注意的是,CAST是ANSI标准的SQL,而CONVERT不是。所以,除非需要使用样式值,否则推荐优先使用CAST函数,以保证代码尽可能与标准兼容

CROSS APPLY

SQL中PIVOT 行列转换

  https://www.cnblogs.com/zouhao/p/6050809.html

子查询

单值子查询

多值子查询

Exists

exists是用来判断是否存在的,当exists查询中的查询存在结果时则返回真,否则返回假。not exists则相反。

  exists做为where 条件时,是先对where 前的主查询询进行查询,然后用主查询的结果一个一个的代入exists的查询进行判断,如果为真则输出当前这一条主查询的结果,否则不输出。

  exists后面的查询称为相关子查询,即子查询的查询条件依赖于外层父查询中的某个属性值,其处理过程一般为:先取外层查询中的第一个元组,根据它与内层查询中的相关属性值处理内层查询,若where子句返回true,则将此元组放入结果表中,然后取外层查询中的下一个元组,重复这个过程直到全部检查完毕为止。

  例如:我们有一张人员信息表,里边有一个人员类型Id字段(pTypeId),它是一个外键,对应着人员类型表的主键ptId。如果我们有以下的SQL语句,使用Exists关键字则可以有如下的理解:

select * from Employee e where exists
(select * from EmployeeType et where e.pTypeId=et.ptId)

  那么,在这句SQL的执行过程中,我们可以将其理解为一个双重的for循环,外边是主表的循环遍历,然后将其放到一个temp变量中,再进入从表的for循环,并与从表的项进行一个一个的按照匹配规则(这里是e.pTypeId=et.ptId)进行匹配,如果有匹配成功则返回true,并且将这一行记录放到要返回的结果集中,否则返回false。

https://www.cnblogs.com/edisonchou/p/3930414.html

isnull

WITH t AS

row_number()

CASE WHEN

join

LEFT JOIN

dense_rank()

SELECT   dense_rank() OVER (ORDER BY v.TotalValue DESC) AS Rank,

透视转换技术

https://www.cnblogs.com/yuanzijian-ruiec/p/9457366.html

标量函数

表值函数

原文地址:https://www.cnblogs.com/cnki/p/9495515.html

时间: 2024-10-28 23:58:52

SQL Server进阶(十四)常用函数的相关文章

SQL Server中截取字符串常用函数

SQL Server 中截取字符串常用的函数: 1.LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要截取最左边的字符数' ) 返回从字符串左边开始指定个数的字符 select LEFT('SQL_Server_2008',4 ); 返回结果:SQL_ 2.RIGHT ( character_expression , integer_expression ) 函数说明:RIGHT ( '源字符串'

SQL SERVER系统表和常用函数介绍

sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库 字符集与排序顺序sysconfigures 主数据库 配置选项syscurconfigs 主数据库 当前配置选项sysdatabases 主数据库 服务器中的数据库syslanguages 主数据库 语言syslogins 主数据库 登陆帐号信息sysoledbusers 主数据库 链接服务器登陆信息sysprocesses 主数据库 进程 sysremotelogins主数据库 远程登录帐号syscolumn

SQL Server(五)——常用函数

1.数学函数:操作一个数据,返回一个结果 --取上限ceiling select code,name,ceiling(price) from car ; --取下限 floor select floor(price) from car --ABS 绝对值 --派 PI(),圆周率,括号里不需要加东西 --ROUND 四舍五入 select ROUND(3.76,0) --SQRT 开根号 --SQUARE 平方,乘以自己 2.字符串函数: --转换大写 upper select upper(pi

SQL Server进阶(四):Join联结查询

测试数据脚本 1 CREATE TABLE Atable 2 ( 3 S# INT, 4 Sname nvarchar(32), 5 Sage INT, 6 Sfrom nvarchar(8) 7 ) 8 9 10 insert into Atable 11 select 1,N'刘一',18,N'A' union all 12 select 2,N'钱二',19,N'A' union all 13 select 3,N'张三',17,N'A' union all 14 select 4,N'李

深入理解SQL Server 2005 中的 COLUMNS_UPDATED函数

原文:深入理解SQL Server 2005 中的 COLUMNS_UPDATED函数 概述 COLUMNS_UPDATED函数能够出现在INSERT或UPDATE触发器中AS关键字后的任何位置,用来指示表或视图中有哪些列已被插入或者更新.它通常和IF语句一起使用,从而可以根据不同的结果,促使触发器执行不同的操作.因此在DML触发器中,COLUMNS_UPDATED函数是一个非常重要且有用的函数. 不同于UPDATE函数,COLUMNS_UPDATED函数可以工作在多个列中,它使用字节中的位(B

SQL Server DBA十大必备工具使生活轻松

[IT168 技术]曾经和一些DBA和数据库开发人员交流时,问他们都用过一些什么样的DB方面的工具,大部分人除了SSMS和Profile之外,基本就没有使用过 其他工具了;诚然,SSMS和Profile足够强大,工作的大部分内容都能通过它们搞定,但是MS.第三方公司甚至是个人开发者为SQLServer提 供了很多其他的工具,如果你能充分的掌握这些工具,无疑会给我们数据库的管理.优化.测试和排错节省大量的时间和精力,下面就来介绍除SSMS和 Profile之外的其他有用的工具. NO1: PD(P

14. 蛤蟆的数据结构进阶十四排序实现之简单选择排序

14. 蛤蟆的数据结构进阶十四排序实现之简单选择排序 本篇名言:"即是我们是一支蜡烛也应该 " 蜡烛成灰泪始干 " 即使我们只是一根火柴也要在关键时刻有一次闪耀即使我们死后尸骨都腐烂了解也要变成磷火在荒野中燃烧. -- 艾青" 继续来看什么是简单选择排序. 欢迎转载,转载请标明出处: 1.  简单选择排序 设所排序序列的记录个数为n.i取1,2,-,n-1,从所有n-i+1个记录(Ri,Ri+1,-,Rn)中找出排序码最小的记录,与第i个记录交换.执行n-1趟后就完

sql server 创建内联表值函数

表值函数就是返回table 的函数使用它可以方便的进行查询的处理 创建的代码如下: create FUNCTION returunclassfirstlist(  -- Add the parameters for the function here )RETURNS TABLE ASRETURN ( -- Add the SELECT statement with parameter references here select * from classfirst;) 我们在使用创建的函数的时

SQL SERVER 提供了一些时间函数:

SQL SERVER 提供了一些时间函数:取当前时间:select getdate()取前一个月的时间:SELECT DATEADD(MONTH,-1,GETDATE()) 月份减一个月取年份:SELECT YEAR( DATEADD(MONTH,-1,GETDATE())),Year 取年份取月份:SELECT MONTH( DATEADD(MONTH,-1,GETDATE())) ,month 取月份.如上,可通过对日期函数的各种组合,来达到目标.

SQL Server 2012 新的分页函数 OFFSET &amp; FETCH NEXT

DECLARE @page INT, @size INT;select @page = 300, @size = 10 SELECT *FROM gpcomp1.GPCUSTWHERE company like 'a%'ORDER BY CUSTNOOFFSET (@page -1) * @size ROWSFETCH NEXT @size ROWS ONLY; SQL Server 2012 新的分页函数 OFFSET & FETCH NEXT,布布扣,bubuko.com