![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL Server
ダ雨夹雪リ
懒
展开
-
SQL实现马踏棋盘
马踏棋盘原创 2022-08-17 18:05:53 · 177 阅读 · 1 评论 -
SQL Server版五子棋
SQL server 2008实现五子棋原创 2022-07-05 11:06:57 · 281 阅读 · 0 评论 -
计算两个日期间隔(SQL)
/*如果开始日期大于结束日期,返回null如果天不够向上一月借如果月不够向上一年借*/CREATE FUNCTION Jiange(@S DATE,@E DATE)RETURNS VARCHAR(50)ASBEGIN DECLARE @rst VARCHAR(50)='' DECLARE @Y1 INT,@Y2 INT,@M1 INT,@M2 INT,@D1 INT,@D2 INT,@Y INT,@M INT,@D INT SELECT @Y1=YEAR(@S),@Y2=YEA.原创 2022-03-06 17:24:01 · 2315 阅读 · 0 评论 -
李白打酒(SQL实现)
李白好饮酒,无事街上走;提壶去打酒,原有酒两斗;遇店加一倍,遇花喝一斗。问:李白在遇到五家店和十朵花以后,他壶中的酒恰好喝完,那么他遇到花和店的顺序是怎样的?DECLARE @count INT=0 DECLARE @I INT=16384DECLARE @sum INTDECLARE @flower INT DECLARE @store INT DECLARE @K1 INT DECLARE @K2 INTDECLARE @J INT DECLARE @T INTDE原创 2021-12-27 14:37:41 · 434 阅读 · 1 评论 -
分糖果(模拟)
有N个小朋友围坐成一圈,老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:每个小朋友都把自己的糖果分一半给左手边的孩子一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数反复进行这个游戏,直到所有小朋友的糖果数都相同为止问,在已知的初始糖果情形下,老师一共需要补发多少个糖果DECLARE @I INTDECLARE @N INTDECLARE @M INT SELECT number,CRYPT_GEN_RANDOM(2)%50*2 AS V INTO #tmpFRO原创 2021-12-10 14:35:21 · 2387 阅读 · 0 评论 -
第几个幸运数
到x星球旅行的游客都被发给一个整数,作为游客编号。x星的国王有个怪癖,他只喜欢数字3,5和7。国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。我们来看前10个幸运数字是:3 5 7 9 15 21 25 27 35 45因而第11个幸运数字是:49小明领到了一个幸运数字 59084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则领不到奖品。请你帮小明计算一下,59084709587505是第几个幸运数字。CREATE TABL.原创 2021-12-06 10:18:26 · 91 阅读 · 0 评论 -
九数算式-SQL Server
观察如下的算式:9213 x 85674 = 789314562左边的乘数和被乘数正好用到了1~9的所有数字,每个1次。而乘积恰好也是用到了1~9的所有数字,并且每个1次。请你借助计算机的强大计算能力,找出满足如上要求的9数算式WITH ctAS( SELECT number,CONVERT(VARCHAR(10),number) AS A,1 AS lv FROM master..spt_values WHERE type='P' AND number BETWEEN 1 AND 9原创 2021-12-05 14:16:17 · 521 阅读 · 1 评论 -
SQL Server计算汉字笔画部首
/*有一个成语表,请计算1)每个字笔画数都相同的成语2)每个字都含有偏旁三点水或火字旁的成语*/--创建汉字词典CREATE TABLE myHanzi ( id INT NOT NULL, zi Nvarchar(255), py varchar(255), wubi varchar(255), bushou Nvarchar(255), bihua INT, pinyin varchar(255), PRIMARY KEY (id));GOSELECT * FRO.原创 2021-11-19 09:57:33 · 188 阅读 · 0 评论 -
分配考场SQL实现
/*1.每个考生前后左右尽量不同班,若不满足可以降低要求*/ --考场数据设置CREATE TABLE #tmp( kc VARCHAR(10), z INT, h INT )--待分配学生数据CREATE TABLE #rst( id INT IDENTITY(1,1), bj VARCHAR(10), xm VARCHAR(10), xh VARCHAR(10), kc VARCHAR(10), zw VARCHAR(10), z INT, h INT,.原创 2021-10-11 11:26:42 · 372 阅读 · 0 评论 -
学生分班SQL实现
/*某中学有2个重点班18个普通班要求:1.重点班人数占总人数的20%2.平均分越接近越好,性别比越接近越好3.尽量不要出现班级同名的情况*/--用到的表CREATE TABLE [dbo].[NBAC_dbo_Scores]( [student] [varchar](50) NULL, [subject] [varchar](50) NULL, [score] [numeric](18, 1) NULL) ON [PRIMARY]goCREATE TABLE [dbo].原创 2021-09-26 09:39:48 · 747 阅读 · 0 评论 -
四分位数SQL实现
/*四分位数(Quartile),即统计学中,把所有数值由小到大排列并分成四等份,处于三个分割点位置的得分就是四分位数第一四分位数 (Q1),又称'较小四分位数',等于该样本中所有数值由小到大排列后第25%的数字第二四分位数 (Q2),又称'中位数',等于该样本中所有数值由小到大排列后第50%的数字第三四分位数 (Q3),又称'较大四分位数',等于该样本中所有数值由小到大排列后第75%的数字第三四分位数与第一四分位数的差距又称四分位距(InterQuartile Range,IQR)1:将数.原创 2021-02-22 08:43:18 · 10500 阅读 · 2 评论 -
SQL打印矩阵(转圈)
--1.定义变量DECLARE @I INT=0DECLARE @J INT=1DECLARE @Z INT=0DECLARE @N INT= 10DECLARE @Flag INT = @NDECLARE @Number INTDECLARE @Where NVARCHAR(4000)DECLARE @Sql NVARCHAR(4000)--2.产生N*N的数据SELECT number,0 AS I,0 AS J,0 AS Z INTO #Tmp FROM master..sp.原创 2020-12-23 15:31:03 · 115 阅读 · 0 评论 -
DBSCAN聚类算法-SQL实现
CREATE TABLE #T( p VARCHAR(10), x DECIMAL(18,6), y DECIMAL(18,6), j VARCHAR(10), c BIT DEFAULT 0 )INSERT INTO #t(p,x,y) VALUES('p1',1,2)INSERT INTO #t(p,x,y) VALUES('p2',2,1)INSERT INTO #t(p,x,y) VALUES('p3',2,4)INSERT INTO #t(p,x,y) VALUES...原创 2020-12-03 13:59:33 · 976 阅读 · 0 评论 -
SQL计算1000的阶乘
DECLARE @i INTDECLARE @j INT DECLARE @m INT DECLARE @n INT DECLARE @l INTDECLARE @c CHAR(1)DECLARE @S VARCHAR(4000) DECLARE @T VARCHAR(4000) SET @i=1SET @n=1000SET @S='1'WHILE @n>=1BEGIN SET @l=LEN(@S) SET @m=0 SET @T='' WHILE @l>=.原创 2020-11-19 08:07:32 · 1091 阅读 · 0 评论 -
SQL5X5方格棋盘难题
/*在5X5的方格棋盘中,每行,列,斜线(斜线不仅仅包括对角线)最多可以放两个球,如何摆放才能放置最多的球,这样的摆法总共有几种?输出所有的摆法.要求:用一句SQL实现输出格式:从方格棋盘第一行至第5行,每行从第一列到第5列依次输出,0表示不放球,1表示放球.一行输出一个行号和一个解例如:行号,结果1 00011010011100000110101002 00011010101000110100011003 0001101100100010011011000*/...原创 2020-11-19 08:06:39 · 738 阅读 · 0 评论 -
计算促销最优组合方案
--1.建表CREATE TABLE #A(id INT IDENTITY(1,1),model VARCHAR(10),price DECIMAL(18,2))--2.插入数据INSERT INTO #ASELECT 'A',140UNIONSELECT 'B',130UNIONSELECT 'C',80UNIONSELECT 'D',70UNIONSELEC...原创 2019-06-28 16:06:04 · 2213 阅读 · 0 评论 -
字符串带格式转日期
using System;using System.Data;using System.Data.SqlClient;using System.Data.SqlTypes;using Microsoft.SqlServer.Server;using System.Globalization;public partial class UserDefinedFunctions{ ...原创 2019-03-09 14:10:48 · 127 阅读 · 0 评论 -
常见数据库容灾技术的直观比较
当前是信息社会,数据库的重要性不言而喻。本文从普通用户而不是厂家(不谈RPO、RTO、MDT、MTBF、MTTR等等专业术语)角度出发来审视和比较各种数据库容灾技术,希望能帮助广大用户在选购方案时少被忽悠、少走弯路、避免不必要的经济损失和系统事故。 对于广大用户来说,最关心的是下列两点:A. 是否具有两份逻辑一致的数据:如果某容灾方案具有两份‘逻辑一致’的数据,那在故障发生时,用户数据就是安全...转载 2019-01-25 13:43:48 · 316 阅读 · 0 评论 -
optimize for ad hoc workloads
--1.查看执行计划重用次数和占用空间 SELECT cp.usecounts,cp.cacheobjtype,cp.objtype,st.text,qp.query_plan,cp.size_in_bytes FROM sys.dm_EXEC_cached_plans cpcross apply sys.dm_EXEC_sql_text(plan_handle) stcro...原创 2018-11-14 16:25:08 · 458 阅读 · 0 评论 -
获取钉钉token
ALTER PROCEDURE [dbo].[sp_getdingtalk](@platform_key INT,@token varchar(100) OUTPUT)ASBEGIN IF EXISTS(SELECT 1 FROM y_platform_token WHERE platform_key=@platform_key AND DATEDIFF(SECOND,create_ti...原创 2018-09-08 15:43:44 · 3454 阅读 · 0 评论 -
发送钉钉消息
ALTER PROCEDURE [dbo].[sp_sendmessageding](@agentid varchar(20),@message NVARCHAR(4000), @Source NVARCHAR(255)='' OUTPUT, @Desc nvarchar(255)='' OUTPUT)ASBEGIN DECLARE @token VARCHAR(100) DECLARE...原创 2018-09-08 15:44:26 · 994 阅读 · 0 评论 -
C#DataTable和XML互转
public static string DataTableToXml(DataTable dt) { System.IO.TextWriter tw = new System.IO.StringWriter(); dt.TableName = dt.TableName.Length == 0 ? "TableName" : dt.TableName; ...原创 2013-03-26 17:11:46 · 637 阅读 · 0 评论 -
兔子数列
With A(B,C,D,E)As(Select 1 As B,1 As C,0 As D,1 As EUnion AllSelect B+C As B,C,1 As D,E As E From A Where E<40 And D=0Union AllSelect C As B,B+C As C,0 As D,E+1 As E From A Where E<40 An...原创 2018-09-03 10:28:54 · 477 阅读 · 0 评论 -
SQL分组问题
/*表结构数据如下:Id dDate Price1 2013-10-01 2182 2013-10-02 2183 2013-10-03 2184 2013-10-04 2385 2013-10-05 2386 2013-10-06 2387 2013-10-07 2588 2013-10-08 2589 ...原创 2018-09-09 09:03:30 · 127 阅读 · 0 评论 -
SQL版月历
Declare @YMD Varchar(10)='2015-04-01';With TAs( Select Dateadd(day,number,@YMD) As D From Master.dbo.spt_values Where Type='P' And number Between 0 And 31 )Select Isnull([1],'') As Su...原创 2018-09-09 09:04:44 · 165 阅读 · 0 评论 -
新历转旧历
Create Function [dbo].[fn_BitTest32](@num int,@bitpostion int)Returns bitAsBegin--测试某位是否为真Declare @Rst bit=0Declare @bit int If (@bitpostion>=1 And @bitpostion<=31)Begin Set @bit=Powe...原创 2018-09-09 09:09:04 · 434 阅读 · 0 评论 -
SQL操控Excel
DECLARE @hr INT;DECLARE @objExcel INT;DECLARE @objWorkBooks INT;DECLARE @objWorkBook INT;DECLARE @objSheets INT;DECLARE @objSheet INT;DECLARE @objRange INT;Declare @A INTEXEC @hr = sp_OACre...原创 2018-09-09 09:09:59 · 302 阅读 · 0 评论 -
SQL Server页级别的数据恢复
--1.最近的完整备份BACKUP DATABASE DBName TO DISK = N'C:\Test.bak'--2.发现错误页(可以人为破坏)SELECT * FROM msdb.dbo.suspect_pages--3.立即备份日志1BACKUP LOG DBName TODISK = 'C:\Test_LOG1.bak'WITH INIT--3.用完整备份,还原...原创 2018-09-09 17:52:08 · 271 阅读 · 0 评论 -
九九乘法表
With TAs( Select 1 As A Union all Select A+1 From T Where A<9)Select [1],[2],[3],[4],[5],[6],[7],[8],[9]From( Select M.A As MA,N.A As NA, Convert(Varchar(2),M.A)+'*'+ Convert(Varchar(2...原创 2018-09-07 16:50:20 · 98 阅读 · 0 评论 -
SQL魔术矩阵
ALTER Procedure [dbo].[sp_MSJZ](@N int)AsBegin If @N<3 or @N%2=0 Begin Print '请输入大于2的奇数' Return End --定义I,J行列和值 Declare @I int=1,@J int,@K int,@X int,@Y int,@T int,@R int --创建N列的表...原创 2018-09-07 16:51:25 · 181 阅读 · 0 评论 -
多项式展开系数
Declare @A int=7;Declare @w nVarchar(3000)=''Declare @s nVarchar(3000)=''Declare @sql nvarchar(4000)=''Select @w=@w+',['+number+']', @s=@s+',isnull(['+number+'],'''') As ['+number+']' From...原创 2018-09-07 16:54:28 · 6190 阅读 · 0 评论 -
SQL查询二叉树
--1.建表CREATE TABLE #T( id INT, [name] VARCHAR(10), [for] INT, [left] INT, [right] INT)--2.插入数据 INSERT INTO #T VALUES(1, '小小', 0, 3, 2)INSERT INTO #T VALUES(4, '笑笑', 2, 8, 9)INSERT INTO #T...原创 2018-09-07 16:59:13 · 1734 阅读 · 0 评论 -
解析sql日志
ALTER PROCEDURE [dbo].[Sp_RecoveryDate](@TableName varchar(100))ASBegin DECLARE @RowLogcontent0 VARBINARY(max) --日志 DECLARE @Fixedlengthsize VARBINARY(2) --固定数据长度 DECLARE @FixedLengthData VARB...原创 2018-10-26 17:40:36 · 535 阅读 · 3 评论 -
解析sql日志(用到的函数)
ALTER FUNCTION [dbo].[fn_ConvertToSmallDateTime](@Val varbinary(4)) RETURNs SmallDateTimeASBEGIN RETURN CONVERT(SmallDateTime,SUBSTRING(@Val,4,1) +SUBSTRING(@Val,3,1) +SUBSTRING(@Val,2,1) +...原创 2018-10-26 17:42:04 · 473 阅读 · 1 评论 -
SQL数据页行存储格式分析
--建立测试表create table t_test( col1 int, col2 varchar(10), col3 datetime, col4 char(10), col5 nvarchar(4))go--插入数据insert t_test values(1,'ABC','2010-03-15','123',N'abc')insert...原创 2018-10-26 17:47:06 · 227 阅读 · 0 评论 -
钉钉消息格式
CREATE PROCEDURE sp_dingmessage_text(@touser NVARCHAR(2000)='',@toparty NVARCHAR(2000)='',@agentid NVARCHAR(20), @content NVARCHAR(2000), @message NVARCHAR(4000) OUTPUT)ASBEGIN IF ISNULL(@touser,...原创 2018-09-08 15:42:40 · 3148 阅读 · 0 评论