随笔分类 - SQL 语句合集
收藏和编写的Sql语句
摘要:最近项目中用到了行转列,使用SQL SERVER 提供的PIVOT实现起来非常容易。官方解释:详见这里可以使用 PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表。PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。UNPIVOT 与 PIVOT 执行相反的操作,将表值表达式的列转换为列值。其实PIVOT 就是行转列,UNPIVOT就是列转行。PIVOT 的完整语法为:SELECT ,[第一个透视的列] AS ,[第二个透视的列] AS ,...[最后一个透视的列] AS ,FROM()AS PIVO
阅读全文
摘要:MSSQL为我们提供了两种动态执行SQL语句的命令,分别是 EXEC 和SP_EXECUTESQL,我们先来看一下两种方式的用法。先建立一个表,并添加一些数据来进行演示:CREATE TABLE t_student( Id INT NOT NULL, Name NVARCHAR (10) NULL, Age TINYINT NULL, School NVARCHAR(20) NULL, Class NVARCHAR(10) NULL, Score FLOAT NULL, CONSTRAINT [PK_Student_Id] PRIMARY KEY CLUSTERED(Id))GOINSERT
阅读全文
摘要:在SQL中分拆列值和合并列值老生常谈了,从网上搜刮了一下并记录下来,以便不时之需 :)什么叫分拆列值和合并列值呢?就只是这样的,比如有如下表A结构及数据:IdData1aa,bb2aaa,bbb,ccc将该表A的Data字段数据根据 “,” 进行分拆得到如下表BIdData1aa1bb2aaa2bbb2ccc这就是表A-->表B 叫做分拆列值,表B-->表A 叫做合并列值。一、分拆列值:CREATE TABLE t_Demo1( Id INT, Data VARCHAR(30))GOINSERT INTO t_Demo1 VALUES(1,'aa,bb') INSE
阅读全文
摘要:问题描述:假如有一表结构和数据如下:C1C2C3C4C5126342234503628经过sql查询后输出的结果集为:(字段后面增加聚合[最大值] [最小值] [>=5的值个数])C1C2C3C4C5MaxMinCount(>=5)126346112234552103628822实现该结果的SQL 脚本如下:/* 作 者:<Rising_Sun> 创建日期:<2012-9-29> 功 能:<实现表横向聚合>*/DECLARE @t TABLE(C1 int,C2 int,C3 int,C4 int,C5 int)INSERT INTO @t VA
阅读全文
摘要:在项目中经常遇到求每个类别最新显示的数据,比如显示某某某类别最新更新的5条数据。特写下这个sql记录于此:-- =============================================-- 作者: <Rising_Sun>-- 创建日期: <2012-9-28>-- 描述: <显示每个类别下最新更新的n条数据>-- =============================================DECLARE @t TABLE ( NewsId INT, NewsType NVARCHAR(20), NewsTitle NVARC
阅读全文