MSSQL
文章平均质量分 87
道玄希言
软件开发
展开
-
SqlServer2016 JSON格式数据操作
JSON结构转为列表模式DECLARE@jsonNVARCHAR(MAX)=N'{"001":null,"002":"Duffy","003":123,"004":456.789,"005":["Dev","QA","PM"],"006":{"Country":"Canada","Territory":"NorthAmerica"}}'1. SELECT*FROMOPENJSON(@json)结果:key value ...原创 2020-09-29 11:19:53 · 1854 阅读 · 0 评论 -
MSSQL 构建日期范围内的连续月份或日期(不借助系统表的方法)
--A 为需要统计的原始数据--B 构建连续日期使用, 一月最多 31 天, 所以最多需要到30.--C 找出最小和最大日期;with A(日期,金额) as( select '2014-05-01','100' union allselect '2014-05-02','200' union allselect原创 2016-04-16 00:34:53 · 789 阅读 · 0 评论 -
利用sp_addlinkedserver实现远程数据库链接
--查看当前链接情况:select * from sys.servers;--使用 sp_helpserver 来显示可用的服务器Exec sp_helpserver--删除已经存在的某个链接Exec sp_droplinkedsrvlogin 服务器别名,NullExec sp_dropserver 服务器别名--使用sp_addlinkeds转载 2015-11-24 14:50:35 · 373 阅读 · 0 评论 -
MSSQL 通过FOR XML PATH 模仿MYSQL的 group_concat 函数,將纪录值合并成字符串
;with tbl(id, s, sort) as( select 1, '广东省', 3 union all select 1, '广州市', 2 union all select 1, '越秀区', 1 union all select 2, '北京市', 2 union all select 2, '朝阳区', 1)select id, ( stuff(原创 2015-10-14 12:14:45 · 701 阅读 · 0 评论 -
MSSQL, MYSQL 字符串拆分
MSSQL:MSSQL 2005 以上1.declare @str nvarchar(2000), @split nvarchar(10)set @str = '广东省,广州市,越秀区'set @split =','SELECT B.id FROM ( SELECT [value] = CONVERT(XML, '' + REPLA原创 2015-10-14 13:27:45 · 417 阅读 · 0 评论 -
MSSQL 求累加和
;WITH cte AS ( select 1 AS A union allselect 2 union ALL select 3 union ALL select 4 union ALL select 5 union ALL select 6 union ALL select 7 union ALL select 8 union ALL sele原创 2015-10-13 17:57:10 · 533 阅读 · 0 评论 -
MSSQL 动态列转行并统计
Create table tb([No] nvarchar(250),[Name] nvarchar(250),[RefResult] int,[Subject] nvarchar(250),[Result] int)Insert tbselect N'01',N'张三',75,N'科目1',74 union allselect N'01',N'张三',85,N'科目2',90 uni原创 2015-10-10 14:32:34 · 721 阅读 · 0 评论 -
MSSQL 排序函数 ROW_NUMBER() RANK() DENSE_RANK() NTILE()
排序函数PARTITION BY 分区 加PATITION,将会先PATITION成多个分区,然后在分区内部排名,各区的排名互不干扰,排名计数器各自独立从0开始. ROW_NUMBER()ROW_NUMBER函数允许以上升,连续的顺序给每一行数据一个序号。注意ROW_NUMBER()函数后面一定要跟着over子句。RANK() RANK 函数允许以上原创 2015-07-23 15:12:34 · 622 阅读 · 0 评论 -
MSSQL 的merge关键字实现两个表的同步
功能: 根据源表对目标表执行插入、更新或删除操作。最典型的应用就是进行两个表的同步基本语法: MERGE 目标表 USING 源表 ON 匹配条件 WHEN MATCHED THEN 语句 WHEN NOT MATCHED THEN 语句;MERGE语句最后的分号是不能省略扩展:WHEN NOT MATCHED BY TARGET原创 2015-07-23 13:00:11 · 583 阅读 · 0 评论 -
MSSQL Server 创建分区表
分区表的主要目的:是为了改善大型表以及具有各种访问模式的表的可伸缩性和可管理性。分区一方面可以将数据分为更小、更易管理的部分,为提高性能起到一定的作用;另一方面,对于如果具有多个CPU的系统,分区可以是对表的操作通过并行的方式进行。2. 创建分区表或分区索引的步骤可以分为以下步骤:1. 确定分区列和分区数2. 确定是否使用多个文件组3原创 2015-07-21 16:46:57 · 497 阅读 · 0 评论 -
MSSQL 的with ties 关键字
top ... with ties从基本结果集中返回额外的行, 只能用在查询语句中, 且必需有 ORDER BY 排序子句取数到 TOP n 行纪录中的最后一行时, 之后的一行或多行纪录跟最后一行的纪录相同,如果也需要同时取出来, 则可用 top n with ties 显示.如,考试成绩的前3名, 这时刚好第三名有两人, 需要同时取出,就可用该方法. eg:select原创 2015-07-23 13:12:20 · 369 阅读 · 0 评论 -
MSSQL 的OVER()函数
1. OVER子句用于为行为定义一个窗口(即给纪录多添加特定一列),以便进行特定的运算。可以简单地认为是运算将要操作的一个行的集合。聚合函数和排序函数都是可以支持OVER子句的运算类型。由于OVER子句为这些函数提供了一个行的窗口,所以这些函数也称之为开窗函数。如果over()里面没有子句, over子句为该次查询返回的所有行. over子句提供partition by进原创 2015-07-23 14:09:35 · 2331 阅读 · 0 评论 -
MSSQL 的QUOTENAME函数
-- 功能:返回带有分隔符的Unicode 字符串,分隔符的加入可使输入的字符串成为有效的MSSQL分隔标识符。-- 语法QUOTENAME ( 'character_string' [,'quote_character']) -- SQL语句中的字段名,表名为关键字时,用QUOTENAME添加有效分隔符() -- 在动态查询中,对表名参数QUOTENAME处理,避免表名为原创 2015-07-30 16:02:52 · 732 阅读 · 0 评论 -
MSSQL 关于系统表的一些应用
查询所有用户表的纪录数。SELECT a.name, b.rows FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.id WHERE (a.type = 'u') AND (b.indid IN (0, 1))ORDER BY a.nam转载 2015-08-10 15:21:12 · 524 阅读 · 0 评论 -
MSSQL 模仿 MYSQL 的IPV4与BIGINT类型互转函数
通过 MSSQL 模仿 MYSQL 的IPV4与BIGINT类型互转函数转载 2015-06-17 14:27:27 · 924 阅读 · 0 评论