SQL Server
ChristopherChen
这个作者很懒,什么都没留下…
展开
-
SQL Server 怎样使用SQL输出建表语句
在一般的数据库系统中可使用 表名右键--[Script Table as]--[Create To]--XX 输出建表SQL语句,但在某些SQL Server系统中可能客户仅提供数据库查询权限,导致无法导出建表语句,此时可使用select语句查询系统表生成建表语句模板语句如下:Declare @SelectTableName varchar(400),@SelectSchemaNa原创 2016-07-13 18:53:38 · 8775 阅读 · 0 评论 -
SQL Server 求指定日期的上季尾日的起始点(比如入参日2016-06-30,返回 2016-03-31 00:00:00.000)
--求指定日期的上季尾日的起始点(比如入参日2016-06-30,返回 2016-03-31 00:00:00.000)--原始QueryDECLARE @Date Datetime='20160630';SELECT DATEADD(quarter,-1,@Date) LastQuarter--原始Query根据入参日期求得的上一季度的同一日期,即原始27号即返回27号;当入参日期为3原创 2016-08-18 12:05:50 · 649 阅读 · 0 评论 -
SQL Server实现类型Oracle 中类似Listogg的功能
select * from [dbo].[Team]ID TL Member1 Sherman Sonia,Hilary,Clair2 Alvin Chris,Josie,Joanna3 Nancy Evelyn,Ann,LenaIF OBJECT_ID('dbo.Team', 'U') IS NOT NULL DROP TABLE dbo.Team; CREATE TABLE原创 2016-08-23 11:35:19 · 1242 阅读 · 0 评论 -
SQL Server处理字符串常用的函数
LEFT()SELECT LEFT('Sherman',3)RIGHT()SELECT RIGHT('Sherman',3)STUFF()SELECT STUFF('Sherman',1,7,'')SELECT STUFF('Sherman',1,3,'Alvin')SUBSTRING()SUBSTRING( expression, start, length )SELEC原创 2016-09-13 17:43:01 · 499 阅读 · 0 评论 -
SQL Server 左连接拾遗
A表左连接B表情况ASELECT a.*,b.*FROM a LEFT JOIN b ON a.xx=b.xx AND a.Name='Sherman'等价于SELECT a.*,b.*FROM a LEFT JOIN b ON a.xx=b.xx因为左连接的时候左表内容必须全部输出,此时及时在 FROM子句后的 ON后添加左表的筛选条件也不会起任何作用,如需筛选左表内容,应该在WH原创 2016-11-18 13:00:38 · 527 阅读 · 0 评论 -
SQL Server 特殊字符
制表符: CHAR(9)换行符: CHAR(10)回车符: CHAR(13)XML 特殊字符处理, 转义字符'<' < 小于号 '>' > 大于号 '&' & 和 ''' ' 单引号 '"' " 双引号原创 2016-11-18 15:35:38 · 3561 阅读 · 0 评论 -
SQL Server 实现单列累积乘
--PRODUCT 即乘积IF OBJECT_ID('dbo.RecursiveMultiplication') IS NOT NULL DROP TABLE dbo.RecursiveMultiplication;CREATE TABLE RecursiveMultiplication(Id INT, Num DECIMAL(9,2));INSERT INTO RecursiveMult原创 2017-01-03 16:45:15 · 1821 阅读 · 0 评论 -
SQL Server Binary转换
DECLARE @hexstring VARCHAR(MAX)='E0F0C0';SELECT CAST('' AS XML).value('xs:hexBinary(substring(sql:variable("@hexstring"), sql:column("t.pos")) )', 'VARBINARY(MAX)')FROM (SELECT CASE SUBSTRING(@hexst原创 2017-07-31 15:45:37 · 2831 阅读 · 0 评论 -
SQL Server 怎样生成序列号(虚拟数字辅助表)
生成一个"序列" 或者说生成一个"虚拟数字辅助表"是扩展数据库集合操作的重要途径。其主要创建途径一般是通过笛卡尔积法、系统表法(实质一般也是笛卡尔积法)、创建自定义函数法等方式原创 2016-08-05 14:38:35 · 4610 阅读 · 0 评论 -
SQL Server 系统信息查询
--1. 怎样查看某表的创建与最后更新时间SELECT Name , Create_Date , Modify_Date FROM sys.objects WHERE TYPE='U'原创 2017-10-28 10:15:57 · 670 阅读 · 0 评论 -
SQL Server 生成时间序列
WITH DateSequence AS (SELECT CONVERT(DATETIME,'20150101') AS DateNumUNION ALLSELECT DateNum+1 FROM DateSequence WHERE DateNum<DATEADD(YEAR,10,CONVERT(DATETIME,'20170101'))-1)SELECT ds.DateNum原创 2017-10-16 16:55:12 · 2846 阅读 · 0 评论 -
怎样用SQL递归求各个Folder的文件数
-- 数据准备CREATE TABLE [dbo].[ContentObject] (Id NCHAR(10), Name NVARCHAR(500),ParentId NCHAR(10),Type NVARCHAR(50));INSERT INTO [dbo].[ContentObject] VALUES('0x00000001', 'ROOT', NULL, 'Folder');INSE...原创 2018-05-22 14:52:41 · 493 阅读 · 0 评论 -
SQL Server 分割某表中的字符串字段
USE TSQL2012; IF OBJECT_ID('dbo.Team', 'U') IS NOT NULL DROP TABLE dbo.Team;CREATE TABLE dbo.Team(ID INT Primary Key,TL VARCHAR(30),Member VARCHAR(200))INSERT INTO Team VALUES(1,'Sherman','Soni原创 2016-08-18 12:04:13 · 2280 阅读 · 0 评论 -
SQL Server 存储过程
本章内容简介:• 存储过程的定义以及何时需要使用一个存储过程• 如何创建、修改和删除存储过程• 传递输入和输出参数的方式• 错误处理• 性能考虑事项• 如何使用调试器 存储过程很有用。如果您一直使用的是过程式编程语言,那么本章的内容可能正适合您。现在,看一下SQLServer代码的主要种类,不过在深入研究这一主题之前,需要了解的是——其种类数目可能低于也可能高于您所原创 2016-07-21 23:18:22 · 5132 阅读 · 0 评论 -
SQL Server 0101 首日期的处理
First day of one weekselect DATEADD(wk,DATEDIFF(wk,0,@DynamicDate), 0) as CurrentWeek First day of one monthselect DATEADD(mm,DATEDIFF(mm,0,@DynamicDate), 0) as CurrentMonth原创 2016-07-07 10:03:34 · 609 阅读 · 0 评论 -
SQL Server数据库 怎样求解给定任意日期的当季首日
--错误版declare @TrailingDate Date;set @TrailingDate='20161207';select case when month(@TrailingDate) when month(@TrailingDate)%3 = 0 then convert(date, convert(varchar(4), year(@Tr原创 2016-07-07 11:30:47 · 834 阅读 · 0 评论 -
leetcode 262. Trips and Users
The Trips table holds all taxi trips. Each trip has a unique Id, while Client_Id and Driver_Id are both foreign keys to the Users_Id at theUsers table. Status is an ENUM type of (‘completed’, ‘c原创 2016-07-18 18:02:39 · 1126 阅读 · 0 评论 -
leetcode 197. Rising Temperature
Given a Weather table, write a SQL query to find all dates' Ids with higher temperature compared to its previous (yesterday's) dates.+---------+------------+------------------+| Id(INT) | Dat原创 2016-07-17 15:44:02 · 721 阅读 · 0 评论 -
SQL Server 11_编写脚本和批处理
《SQL Server 2012 编程入门经典》[美]Paul Atkinson, Robert Vieira著; 王军, 牛志玲 译第11章 编写脚本和批处理 本章内容简介:• 如何在脚本和批处理中结合T-SQL语句 • 变量和IDENTITY值的作用域 • 在脚本中进行错误处理 • 如何从命令行运行批处理 • 如何构建和运行动态SQL语句 •转载 2016-07-08 09:36:47 · 4905 阅读 · 0 评论 -
leetcode 185. Department Top Three Salaries
The Employee table holds all employees. Every employee has an Id, and there is also a column for the department Id.+----+-------+--------+--------------+| Id | Name | Salary | DepartmentId |+--原创 2016-07-19 15:20:47 · 1008 阅读 · 0 评论 -
求单表序数字段中不连续的最小值
drop table cemp;create table cemp(Id int primary key,Name nchar(50));insert into cemp values(1, 'Chris'),(2, 'Alvin'),(3, 'Lena'),(4, 'Sherman'),(7, 'Joanna'),(8, 'Josie'),(11, 'Lucy'),(原创 2016-07-20 18:16:52 · 660 阅读 · 0 评论 -
如何在SQL Server实现类似RowNum伪列
--如何在SQL Server实现类似RowNum伪列--说明:Oracle中RowNum伪列一般按照表中数据的插入顺序排列,是查询时默认的数据输出排序方式--建立测试样表USE TSQL2012;IF OBJECT_ID('dbo.Test', 'U') IS NOT NULL DROP TABLE dbo.Test;CREATE TABLE dbo.Test(Name varcha原创 2016-08-15 17:16:00 · 11360 阅读 · 1 评论 -
SQL Server 根据分隔符依次截取每个子字符串
--根据分隔符截取字符串 'Chris,Nancy,Alvin,Sherman,Erick,Josie,Sonia,Joanna'--法1 根据CHARINDEX函数递归求出分隔符在字符串中出现的位置,之后根据分隔符截取字符串--注意:下例中当字符内没有分隔符时会陷入死循环DECLARE @str VARCHAR(1000)='Chris,Nancy,Alvin,Sherman,Erick,原创 2016-08-16 18:19:37 · 8701 阅读 · 2 评论 -
SQL Server 根据分隔符截取指定位置的子字符串
--截取分隔符之间的字符串--ChristopherChen 20160804USE TSQL2012;IF OBJECT_ID('dbo.StringTest', 'U') IS NOT NULL DROP Table dbo.StringTest;GOCREATE TABLE dbo.StringTest(UserId INT NOT NULL PRIMARY KEY,N原创 2016-08-04 15:26:17 · 9986 阅读 · 1 评论 -
SQL Server 查询语句怎样定义多种不同类型的过滤条件
Drop Table Emp;Create Table Emp(Id int not null primary key,Name varchar(40) not null,City varchar(40))Insert Into Emp Values(1,'Chris','Xi''an'),(2,'Sonia','Nanyang'),(3,'Alvin','Linfen'),(原创 2016-08-01 17:51:10 · 872 阅读 · 0 评论 -
单列权重计算、动态列Flag、动态页Flag
--单列权重计算、动态列Flag、动态页FlagCREATE TABLE City(Id INT, Name NVARCHAR(500), Weight DECIMAL(9,2));INSERT INTO City VALUES('1','Birmingham','7.6');INSERT INTO City VALUES('2','Montgomery','8.6');INSERT IN...原创 2018-07-03 18:21:55 · 483 阅读 · 0 评论