随笔分类 - sql server T-SQL
摘要:转自、参考:https://bbs.csdn.net/topics/398862474 【1】需求 【2】解决 (2.1)思路 思路,详细代码见下面(2.2) (1)(即递归CTE,t1表)根据表中最小时间、和最大时间,构造出这段时间所有的上下班时间点行,包含最小时间前一天 和 最大时间后一天; (
阅读全文
摘要:需求,有个入职日期,以年月日形式显示该员工已经入职多久 select case when datediff(year,date,getdate()) > 0 -- 如果当前年份大于入职年份 then case when datepart(month,getdate()) - datepart(mon
阅读全文
摘要:【1】需求 如何统计分类数量? 有些分类要合并统计, 例如: 统计亚洲和欧洲有多少国家,剩下的国家统计到"火星" 要求结果是这样的: 【2】在sql group by 中使用 case when 【2.1】常规正向写法 该部分有误,请忽略 ;WITH t1 AS ( SELECT 'Asia' Ar
阅读全文
摘要:Sql server output 功能介绍 基本概念 【1.0】output的优劣 优势:可以在进行DML 增删改时输出/查看/保存操作前后的数据 劣势:如果要输出,在数据量大的情况下,会占用内存资源,影响一点性能 OUTPUT 子句对于在 INSERT操作之后检索标识列或计算列的值可能非常有用。
阅读全文
摘要:蠢蠢的我=》 大佬代码=》 我哭晕在厕所...
阅读全文
摘要:核心思想在于下面几个模式的组合使用: %[0-9]% : 所有数字 %[A-Za-z]%:所有字母 %[吖-咗]%:所有汉字 1. 去除汉字(字母、数字): 举出一例,其他类似: CREATE FUNCTION f_RemoveChinese ( @str VARCHAR(500) ) RETURN
阅读全文
摘要:举例: 我现在是需要查询这字段里包含1的数据 我如果直接charindex,那么11,12也会被包含。 解决(1): 解决(2): 利用如mysql中的find_in_set办法 自己写一个自定义函数split,利用outer apply,这个比较简单,这里不做赘述。 split 函数 可以参考:h
阅读全文
摘要:原代码来自:东莞--小小大神 使用 定义,这里是已经编译好的DLL C#源码 --1、 sql function 1 using System; using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes; u
阅读全文
摘要:select len('aqabbddddcceee') length,(len('aqabbddddcceee')- len(replace('aqabbddddcceee','dd','')))/len('dd') c_exist_count
阅读全文
摘要:使用sp_help 查出 发现有个这个属性, 如何修改呢? SET ANSI_PADDING ONAlter Table Sys_users_History Alter column PveSite varbinary(50)
阅读全文
摘要:【1】sql server自定义排序 1. c2列的数据按'4','1','2'的指定顺序排序 (1) 使用union select * from t_orderby where c2='4' union all select * from t_orderby where c2='1' union
阅读全文
摘要:类似于 oracle中decode函数的MSSQL函数 ①用途: 将空值替换成其他值 返回第一个非空值 ②表达式: COALESCE是一个函数, (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所
阅读全文
摘要:关键词:sql server系统存储过程,mssql系统存储过程 xp_cmdshell --*执行DOS各种命令,结果以文本行返回。 xp_fixeddrives --*查询各磁盘/分区可用空间 xp_loginconfig --*报告SQL Server 实例在Windows 上运行时的登录安全
阅读全文
摘要:根据日期获取日期所在周的周一日期 推荐使用: 转成年月日 select convert(varchar(10),DATEADD(wk, DATEDIFF(wk,0,dateadd(day,-1,'2019-03-31')), 0),120); select convert(varchar(10),D
阅读全文
摘要:如何批量删除SQL注释。。 这个,可能是用来干坏事的吧。不过有时候要做一些重构,也还是有用。嘿嘿 使用工具,notepad++,注意要选择正则表达式按钮才行。 【1】删除 /* */ /\*{1,2}[\s\S]*?\*/ 测试: 原图 效果图 【2】删除 -- 注释 (1)--.* (2)--.+
阅读全文
摘要:换行/回车,可以使用CHAR函数处理,比如: 1 insert into tbtest (text) values ('abc' + char(13)+char(10) + 'def') insert into tbtest (text) values ('abc' + char(13)+char(
阅读全文
摘要:关键字:求连续出现5次以上的值,并且取第5次所在id 关键字:求在某列连续出现N次值的的数据,并且取第M次出现所在行 需求,求连续出现5次以上的值,并且取第5次所在id SQL SERVER: mysql select * from (select *, (select count(1) from
阅读全文
摘要:代码问题与答案均来自sql server数据库技术群 问题来自 群内time,答案来自群内上海-小刀 需求 测试代码 2012之前解法 2012之后解法 常规写法:
阅读全文
摘要:行列转换之——多行转多列,多列转多行实践版 参考:深入行列转换 多行转多列,多行的计算 参考:sql server动态行列转换 1、多列转行(核心思想,利用row_number() over() 来构造列传行之后的唯一列,来行转列) 要求: 实操演示: select 'a' as 'a','b' a
阅读全文
摘要:原文链接:https://www.cnblogs.com/gaizai/p/3753296.html sql server动态行列转换 一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静
阅读全文