sqlserver 存储过程基础关键字

最近要写大量存储过程,这边就介绍下基础常用的一些关键字;

1.USE

Use:它用来只能整个存储过程中调用的数据库,,例:

USE [simpleTest]

 

2.GO

GO:表示一个事物结束的标识,将其GO前面的过程执行完再执行后面的,例:

USE [simpleTest]
GO

 

3.SET 

SET::表示设置,可用于设置参数或者标识,例:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ANSI_NULLS:用来来处理与空值比较的结果

          为ON:where colum=null时返回空行或零行;where colum <>null 时返回空行或零行 (注意:<>  代表sql里的不等于)

         为OFF: where colum=null时返回colum中包含空值的行; where colum<>null时返回colum中包含非空值的行

QUOTED_IDENTIFIER :用来处理与关键字相同名字的自定义变量

         为ON:与sql关键字重复(相同),允许用双引号括起来,便可正常使用

         为OFF:与sql关键字重复(相同),不允许使用

 

4.declare

declare:用于设置参数类型,例:

declare @AAA varchar(10),@BBB varchar(10);

 

5.CREATE PROCEDURE

这边两种一起讲:

CREATE PROCEDURE  名称  AS  存储过程具体代码:用于创建一个存储过程

ALTER PROCEDURE  名称  AS  存储过程具体代码:用于修改替换存储过程

ALTER PROCEDURE [dbo].[proc_test]
AS
    declare @sevenDayStart varchar(10);
    ......

 

6.convert函数

conver(值类型,值内容,值格式):用于转类型

declare @AAA varchar(10);
set @AAA=convert(varchar(10),getdate(),120);

注意:这里的120是值格式,表示yyyy-mm-dd格式;getdate()是获取当前时间。

 

7.dateadd函数

dateadd(日期类型,间隔数,合法的日期表达式):用于增减日期

dateadd(DD,-8,getdate());

日期类型(年:yy或yyyy   季度:qq或q     月:mm或m   年中的日:dy或y      日:dd或d  )等等还有很多

前面这行的意思是当前日期-8天,就是当前的8天以前的日期。

dateadd函数通常和convert函数一起用

 

8.注释

sql里的注释是使用 “- -‘’符号。

 

9.exec或execute

exec或execute  存储过程名(参数) :用来调用其它存储过程。

 

10.case (变量) when A=xxx then ....

case (变量) when A=xxx then ....  :这里变量可加可不加,加了变量,可以把A替换成变量来用,

case A when '沙丁鱼flat' then “AAA” Else 0 END

上面对A这个字段进行处理,如果A字段的值=“沙丁鱼flat“,那么A字段的值变为AAA,否则变为0;

个人认为相当于 switch case,if else这样的作用

这个关键字比较常用于行转列。

 select
     Id    
     ,SUM(case place when '华北' then saleNumbers Else 0 END) as '华北'
     ,SUM(case place when '西南' then saleNumbers Else 0 END) as '西南'
     ,SUM(case place when '华中' then saleNumbers Else 0 END) as '华中'
     ,SUM(case place when '华东' then saleNumbers Else 0 END) as '华东'
     ,SUM(case place when '华南' then saleNumbers Else 0 END) as '华南'

这是部分sql存储过程代码,它本来列名是place,值有华北,西南,华中,华东,华南等

而这样处理后列名有华北,西南,华中,华东,华南,

然后根据在在更内层嵌套的saleNumbers这个字段,更明显地表现各地的销售量。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SQL Server 的 FOR JSON 关键字用于将查询结果以 JSON 格式输出。语法格式如下: SELECT column1, column2, ... FROM table_name FOR JSON [AUTO | PATH | RAW] 其,AUTO 表示自动按照表结构生成 JSON,PATH 表示输出带有路径信息的 JSON,RAW 表示直接输出查询结果(不嵌套)。 使用示例: ``` SELECT name, address FROM dbo.customers FOR JSON AUTO ``` 将会输出一个json数组,其每个数组元素是一条具体记录,包含name, address 两个字段 另外 FOR JSON AUTO 和 FOR JSON PATH 两种选项还可以结合WITH clause一起使用来格式化输出结果,如: ``` SELECT name, address FROM dbo.customers FOR JSON AUTO WITH (FORMAT=JSON_FORMAT_CAMEL) ``` ### 回答2: SQL Server的FOR JSON关键字是用来将SQL查询结果以JSON格式返回的一种方法。它可以将数据库的数据转换为具有层次结构的JSON对象。 使用FOR JSON关键字可以方便地将查询结果转换为JSON数组或JSON对象,从而满足对JSON格式数据的需求。FOR JSON关键字有两种使用方式。 第一种方式是通过在SELECT语句之后添加FOR JSON关键字来将查询结果转换为JSON数组。例如,可以通过以下语句将表的所有数据转换为JSON数组: SELECT * FROM table_name FOR JSON AUTO 这将返回一个包含所有行的JSON数组,每一行都是一个JSON对象,包含表的字段及其对应的值。 第二种方式是使用FOR JSON PATH关键字将查询结果转换为JSON对象。例如,可以通过以下语句将表的数据按照指定的路径转换为JSON对象: SELECT field1 AS 'path1.field1', field2 AS 'path1.field2', field3 AS 'path2.field3' FROM table_name FOR JSON PATH 这将返回一个包含指定路径的JSON对象,每个路径都有一个对应的字段及其值。 FOR JSON关键字还可以与其他SQL语句一起使用,例如JOIN、WHERE、GROUP BY等,从而根据需要灵活地构建JSON格式的查询结果。 总的来说,SQL Server的FOR JSON关键字提供了一种方便快捷的方式来将数据库的数据转换为JSON格式,满足了对JSON数据的操作和传输需求。 ### 回答3: SQL SERVER的FOR JSON关键字用于将查询结果以JSON格式返回。它可以将SQL查询的结果集转换成JSON字符串,方便在前端应用处理和展示数据。 FOR JSON关键字通过在SELECT语句加入FOR JSON子句来实现。有两种使用方式:FOR JSON AUTO和FOR JSON PATH。 FOR JSON AUTO会自动根据查询结果的表结构生成JSON对象。它会将表的每一列作为JSON对象的属性,并将每一行作为JSON对象的实例。例如,如果查询结果有一个员工表,包含员工ID和姓名两列,那么执行SELECT * FROM 员工表 FOR JSON AUTO时,返回的JSON字符串会包含一个员工数组,每个员工对象都包含ID和姓名属性。 FOR JSON PATH则需要手动指定JSON的结构。它使用JSON路径语法,可以在SELECT语句使用别名来指定JSON对象的属性名,并使用'$.属性名'的格式来指定属性路径。例如,执行SELECT ID AS '员工ID', Name AS '员工姓名' FROM 员工表 FOR JSON PATH时,返回的JSON字符串会包含一个员工数组,每个员工对象都包含员工ID和员工姓名属性。 除了自动和手动模式外,FOR JSON还支持一些选项,可以控制JSON字符串的格式。例如,可以使用WITH选项来指定是否带有数组标识符,以及使用WITHOUT_ARRAY_WRAPPER选项来去掉最外层的括号。还可以使用INCLUDE_NULL_VALUES选项来包含NULL值。 总之,SQL SERVER的FOR JSON关键字提供了一种简单方便的方式将查询结果转换为JSON格式,方便在前端应用处理和展示数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值