
SQLSERVER
文章平均质量分 59
oqqken12345
这个作者很懒,什么都没留下…
展开
-
FOR XML PATH
增加一张学生表,列分别为(stuID,sName,hobby),stuID代表学生编号,sName代表学生姓名,hobby学生的爱好:create table student ( stuID int,sName varchar(16),hobby varchar(16)) SELECT sName, ( SELEC原创 2017-10-27 15:10:25 · 228 阅读 · 0 评论 -
动态SQL入门
静态SELECT [Dep_CnName]FROM [master].[dbo].[Depart] 修改为动态 declare @test nvarchar(128)set @test='Dep_CnName' /*列名*/exec ('select '+ @test+' from Depart')增加参数...原创 2018-09-21 11:18:30 · 208 阅读 · 0 评论 -
PIVOT函数,行转列
PIVOT函数的格式如下 PIVOT(<聚合函数>([聚合列值]) FOR [行转列前的列名] IN([行转列后的列名1],[行转列后的列名2],[行转列后的列名3]CREATE TABLE #Temp(TypeClass NVARCHAR(200), Name NVARCHAR(200), Price int)INSERT INTO #Temp (TypeClass...原创 2018-09-14 10:05:37 · 2829 阅读 · 0 评论 -
把标识2的数据过滤出来, 并且把标识1的数量显示在另一列数量2上。
Create table #T([日期] Date,[标识] int,[产品名称] nvarchar(22),[数量] decimal(18,10))Insert #Tselect '2018-7-11',1,N'A',938.163 union allselect '2018-7-11',2,N'A1',938.163 union allselect '2018-7-11...翻译 2018-12-21 15:37:05 · 187 阅读 · 0 评论 -
典型的2个表连接
表a品名 进货数量 进货价值 进货人电视机 4 8000 小张 电话 10 5000 小刘电视机 5 10000 小王 表b品名 出货数量 出货价值 ...原创 2018-04-07 11:17:58 · 308 阅读 · 0 评论 -
常见SQL
一Create table #tab([id] nvarchar(23),[invoiceid] nvarchar(23))Insert #tabselect N'001',N'*' union allselect N'001',N'*' union allselect N'001',N'123' union allselect N'002',N'234' unio原创 2018-02-05 14:59:32 · 205 阅读 · 0 评论 -
Partition By及row_number 函数
partition by用于给结果集分组; row_number 添加行号先看例子create table TESTDB (A varchar(8), B varchar(8))insert into TESTDBselect 'A1', 'B1' union allselect 'A1', 'B2' union allselect 'A1', 'B3' unio原创 2018-02-05 14:33:49 · 1219 阅读 · 0 评论 -
SqlServer事务使用方法
创建事务T-SQL中管理事务的语句:1 开始事务: begin transaction2 提交事务:commit transaction3 回滚事务: rollback transaction事务分类:1 显式事务:用begin transaction明确指定事务的开始。2 隐性事务:打开隐性事务:set implicit_trans翻译 2018-02-05 14:52:43 · 2058 阅读 · 0 评论 -
SQL Server数据库PIVOT函数的使用详解
PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。UNPIVOT 与 PIVOT 执行相反的操作,将表值表达式的列转换为列值。测试用的数据及表结构:1. CREATE TABLE ShoppingCart( 2. [Week] INT NOT NULL, 3. [TotalPrice] DE原创 2017-08-21 08:34:13 · 4082 阅读 · 0 评论 -
with as (子查询)
为了自己更好地理解,还是老实练习一下:sql脚本,方便以后随时练习: View Code现在的需求是:找出要求部门包含“苏州”的项目表中的数据,一般来说,这样的需求一个简单的子查询就可以了,如下:下面隆重祭出CTE:公用表表达式。在使用CTE时应注意如下几点:1. CTE后面必须直接跟使用CTE的SQL语句(如select转载 2017-08-21 08:38:29 · 1109 阅读 · 0 评论 -
行列转换@
createtable tb( Name varchar(10) , Subject varchar(10) , Result int)insertinto tb(Name , Subject , Result) values('张三' , '语文' , 74)insertinto tb(Name , Subject , Result) values原创 2017-08-22 09:01:12 · 242 阅读 · 0 评论 -
SQL SERVER中 性能问题
1.对查询进行优化,应尽量避免全表扫描,考虑在 where 及 order by 涉及的列上建立索引。 2.避免使用 left join 和 null 值判断。left join 比 inner join 消耗更多的资源。3.避免在 where 子句中使用!=或4.避免在 where 子句中使用 or 来连接条件,否则将可能导致引擎放弃使用索引而进行全表扫描。5.in转载 2017-09-09 09:15:31 · 600 阅读 · 0 评论 -
T-SQL查询进阶--详解公用表表达式(CTE)
简介 对于SELECT查询语句来说,通常情况下,为了使T-SQL代码更加简洁和可读,在一个查询中引用另外的结果集都是通过视图而不是子查询来进行分解的.但是,视图是作为系统对象存在数据库中,那对于结果集仅仅需要在存储过程或是用户自定义函数中使用一次的时候,使用视图就显得有些奢侈了. 公用表表达式(Common Table Expression)是SQL SE翻译 2017-10-06 15:24:14 · 310 阅读 · 0 评论 -
WITH AS
一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去转载 2017-10-06 16:03:16 · 436 阅读 · 0 评论 -
递归累计求和
实现 if not object_id('tempdb..#tmp_data') is null drop table #tmp_datacreate table #tmp_data( List_ID int identity(1,1),TradeActAmt decimal(13,2),MerchantNo va原创 2017-10-27 08:43:01 · 3547 阅读 · 0 评论 -
取时间最大的一条记录
A表id titlea1 a1b表id Aid name timeb1 a1 u 2017-5-6b2 a1 x 2017-7-8b3 a1 z原创 2017-10-27 14:30:23 · 2567 阅读 · 0 评论