SQL 结果集分列显示实例
2010-12-28 18:16
411 查看
----------------------------------------------------------------------------------
-- Author : htl258(Tony)
-- Date : 2010-07-06 21:13:04
-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
-- Jul 9 2008 14:43:34
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
-- Blog : http://blog.csdn.net/htl258
-- Subject: SQL 结果集分列显示实例
----------------------------------------------------------------------------------
--> 生成测试数据表: [tb]
IF OBJECT_ID('[tb]') IS NOT NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb] ([A] [nvarchar](10))
INSERT INTO [tb]
SELECT 'aa' UNION ALL
SELECT 'bb' UNION ALL
SELECT 'cc' UNION ALL
SELECT 'dd' UNION ALL
SELECT 'ee' UNION ALL
SELECT 'ff' UNION ALL
SELECT 'gg' UNION ALL
SELECT 'hh' UNION ALL
SELECT 'ii' UNION ALL
SELECT 'jj' UNION ALL
SELECT 'kk' UNION ALL
SELECT 'll'
-->SQL查询如下:
--SQL2005
DECLARE @i INT
SET @i=4 --结果集显示的列数
DECLARE @cols VARCHAR(1000)
SELECT @cols=ISNULL(@cols+',','')+QUOTENAME(number+1)
FROM master..spt_values
WHERE TYPE='p' AND number<@i
EXEC('
WITH t AS
(
SELECT rn=(ROW_NUMBER()OVER(ORDER BY GETDATE())+'+@i+'-1)%'+@i+'+1,*,
rn2=(ROW_NUMBER()OVER(ORDER BY GETDATE())+'+@i+'-1)/'+@i+'
FROM tb
)
SELECT '+@cols+'
FROM t
PIVOT (MAX(a) FOR rn IN('+@cols+'))b
')
/*
1 2 3 4
---------- ---------- ---------- ----------
aa bb cc dd
ee ff gg hh
ii jj kk ll
(3 行受影响)
*/
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/htl258/archive/2010/07/06/5717054.aspx
-- Author : htl258(Tony)
-- Date : 2010-07-06 21:13:04
-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
-- Jul 9 2008 14:43:34
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
-- Blog : http://blog.csdn.net/htl258
-- Subject: SQL 结果集分列显示实例
----------------------------------------------------------------------------------
--> 生成测试数据表: [tb]
IF OBJECT_ID('[tb]') IS NOT NULL
DROP TABLE [tb]
GO
CREATE TABLE [tb] ([A] [nvarchar](10))
INSERT INTO [tb]
SELECT 'aa' UNION ALL
SELECT 'bb' UNION ALL
SELECT 'cc' UNION ALL
SELECT 'dd' UNION ALL
SELECT 'ee' UNION ALL
SELECT 'ff' UNION ALL
SELECT 'gg' UNION ALL
SELECT 'hh' UNION ALL
SELECT 'ii' UNION ALL
SELECT 'jj' UNION ALL
SELECT 'kk' UNION ALL
SELECT 'll'
-->SQL查询如下:
--SQL2005
DECLARE @i INT
SET @i=4 --结果集显示的列数
DECLARE @cols VARCHAR(1000)
SELECT @cols=ISNULL(@cols+',','')+QUOTENAME(number+1)
FROM master..spt_values
WHERE TYPE='p' AND number<@i
EXEC('
WITH t AS
(
SELECT rn=(ROW_NUMBER()OVER(ORDER BY GETDATE())+'+@i+'-1)%'+@i+'+1,*,
rn2=(ROW_NUMBER()OVER(ORDER BY GETDATE())+'+@i+'-1)/'+@i+'
FROM tb
)
SELECT '+@cols+'
FROM t
PIVOT (MAX(a) FOR rn IN('+@cols+'))b
')
/*
1 2 3 4
---------- ---------- ---------- ----------
aa bb cc dd
ee ff gg hh
ii jj kk ll
(3 行受影响)
*/
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/htl258/archive/2010/07/06/5717054.aspx
相关文章推荐
- SQL 结果集分列显示实例
- SQL 结果集分列显示实例
- SQL 结果集分列显示实例
- dataGridView中显示sql结果集
- SQL笔记 - CTE递归实例:显示部门全称
- SQL查询语句行转列横向显示实例解析
- MyBatis - MyBatis使用log4j2显示sql和结果集
- SQL查询语句行转列横向显示实例解析
- 怎么让sqlplus显示当前实例名和登录用户?
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC INPUTBUFFER显示从客户端发送到 Microsoft SQL Server 实例的最后一个语句
- SQL字段名自定义显示应用实例
- SQL笔记 - CTE递归实例(续):显示指定部门的全称
- 在存储过程中如何使用另一个存储过程返回的结果集SQL实例
- 补课:请写出下列每个SQL语句的显示结果集或记录集行数
- 有关 SQLserver + JavaWeb端 多条件结果集 分页显示 的一点总结
- SQL字段名自定义显示应用实例
- repeater 分列显示以及布局的实例代码
- repeater 分列显示以及布局的实例代码
- 复杂SQL查询实例-5种普惠产品必须显示...
- Scripts:显示数据库中DML,DDL锁的脚本locks_dml_ddl.sql