`
宋科明
  • 浏览: 101581 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SQL2000和SQL2005的行转列处理方法

SQL 
阅读更多

SELECT [show_id]
       ,[year]
       ,[n1]
       ,[n2]
       ,[n3]
       ,[n4]
       ,[n5]
   FROM [datapass_db].[dbo].[test]

1:SQL2005中的列转行.

SELECT [show_id], mon, SubTotal
FROM [datapass_db].[dbo].[test] UNPIVOT
    (SubTotal FOR mon IN
       ([n1], [n2], [n3],[n4],[n5])
)AS unpvt;


2:SQL 2000 中的列转行

declare @tmpsql varchar(8000)
declare @sql varchar(8000)
select @tmpsql = ''
select @tmpsql = @tmpsql + ' UNION ALL SELECT '
   +' show_id,'
         +' year ,'
   +name +' as mon'
   +' from dbo.test'
from syscolumns
where object_id('dbo.test')=id and left(name,1) = 'n'
select @tmpsql=stuff(@tmpsql,1,11,'')
select @sql = 'select * from ('+@tmpsql+') t where t.mon>0'
print @sql
exec (@sql)

 

 


付送:


1:查找,已知列的表名.

select syscolumns.name,sysobjects.name from syscolumns , sysobjects
where syscolumns.id = sysobjects.id and syscolumns.name='要查的列名'

2:找出在两个数据库中表名称在彼此数据库中不存在的表名称,字段.

SELECT accdb.table_name AS accdb_table_name,
accdb.columns_name AS accdb_columns_name,
accdb1.table_name AS accdb1_table_name,
accdb1.columns_name AS accdb1_columns_name
FROM (SELECT Accdb.dbo.sysobjects.name AS table_name,
Accdb.dbo.syscolumns.name AS columns_name
FROM Accdb.dbo.syscolumns INNER JOIN
Accdb.dbo.sysobjects ON
Accdb.dbo.syscolumns.id = Accdb.dbo.sysobjects.id
WHERE (NOT (Accdb.dbo.syscolumns.name LIKE '@%')) AND
(Accdb.dbo.sysobjects.xtype = 'U')) accdb LEFT OUTER JOIN
(SELECT sysobjects.name AS table_name,
syscolumns.name AS columns_name
FROM syscolumns INNER JOIN
sysobjects ON syscolumns.id = sysobjects.id
WHERE (NOT (syscolumns.name LIKE '@%')) AND (sysobjects.xtype = 'U'))
accdb1 ON accdb.columns_name = accdb1.columns_name AND
accdb.table_name = accdb1.table_name
WHERE (accdb1.table_name IS NULL) OR
(accdb1.columns_name IS NULL) order by accdb.table_name,accdb.columns_name

其中accdb1为旧库,accdb为新库。
不只能查出表不同, 还包括字段的

分享到:
评论

相关推荐

    Sql Server 2005 行转列的实现 (横排)

    在SQL Server 2005中,我们经常遇到这样的需求:需要将数据库中的多行数据转换为多列显示,这通常被称为“行转列”或“行列互换”。这种操作在数据分析、报表制作或者简化数据显示时非常有用。本文将详细讲解如何在...

    sql列转行以及行转列的通用存储过程

    根据提供的标题、描述、标签及部分内容,本文将详细介绍SQL中实现列转行及行转列通用存储过程的具体方法,特别是针对Microsoft SQL Server版本的应用场景。 ### 标题解析:SQL列转行及行转列的通用存储过程 该标题...

    Sql语句实现表的行列转换,行转列,列转行

    ### SQL语句实现表的行列转换,行转列,列转行 在处理数据库时,我们经常需要对数据进行各种变换以适应不同的分析需求。其中,“行列转换”就是一种非常实用的功能,它可以帮助我们将表中的行数据转换为列数据,...

    SQL行转列参考代码(sqlserver)

    在SQL Server中,"行转列"是一种常见的数据操作,它可以帮助我们把表格中的多行数据转换成一列,或者将某一列的数据转换为多列显示。这种技术在数据分析、报表制作以及信息展示中非常实用。本文将详细介绍SQL Server...

    sql动态行转列 存储过程

    通过这种方式,我们可以利用SQL的动态行转列功能,灵活地处理各种数据结构,特别是在数据报表和分析场景中。记住,尽管这种方法强大,但也要注意性能问题,因为动态SQL可能会增加查询的复杂性,影响数据库的执行效率...

    Mysql 行转列,列转行 SQL语句和示例表结构SQL

    MySQL 提供了两种转换数据布局的方法:行转列(Pivot)和列转行(Unpivot),这在处理复杂的数据汇总和展示时非常有用。本文将深入探讨这两种转换方法,并提供具体的 SQL 语句示例,以及创建示例表结构的 SQL 代码。...

    sql利用union all行转列

    ### SQL利用UNION ALL进行行转列方法解析 在数据库操作中,经常需要对数据进行各种转换以满足不同的业务需求。其中,“行转列”(Pivot)是一种常见的数据转换方式,它能够将数据表中的某列或多列值转换为多列的...

    SqlServer行转列

    ### SqlServer行转列 ...综上所述,SQL Server中的行转列功能提供了强大的数据重塑能力,能够帮助用户更有效地处理和分析数据。通过掌握正确的使用方法和注意事项,可以在实际工作中大大提高工作效率。

    SQL---行转列 详细描述

    在SQL Server 2000中,由于缺乏直接支持行转列的内置函数或语句,通常需要通过动态SQL来实现。具体步骤如下: 1. **构建动态SQL语句**:首先,需要查询出所有需要被转换为列的值,并基于这些值构造动态SQL。 2. **...

    SQL Server行转列使用

    T-SQL(Transact-SQL)是微软SQL Server所使用的扩展SQL语言,它提供了丰富的数据处理功能,包括行转列。在SQL Server中,有两种主要的方法可以实现这一转换: 1. 使用CASE语句: CASE语句是SQL中一个非常强大的...

    SQL行转列显示

    这种转换技术被称为“行转列”或“透视”(Pivot),而在SQL语言中实现这一功能,最常用的方法便是利用PIVOT函数。本文将深入探讨如何使用SQL中的PIVOT函数将表格数据由行格式转换为列格式,并通过具体案例进行详细...

    SQL中如何实现行转列.rar

    总的来说,SQL中的行转列技术是数据处理和分析的重要工具,理解和掌握这些方法能帮助我们更好地对数据进行整理和展示。实际应用中,应根据具体数据库系统和需求选择合适的方法。在进行行转列操作时,要注意数据量和...

    SQL 2005 列转行的方法

    在SQL Server 2005中,我们经常需要将数据从列的形式转换为行的形式,这一操作在数据库处理中被称为“行列转换”。这种转换对于数据分析、报表制作或数据展示非常有用。本文将详细介绍两种实现SQL Server 2005中列...

    sql行转列解决方案.

    标题与描述均提到“SQL行转列解决方案”,这主要指的是在SQL中将数据表...总之,行转列是SQL数据处理中的一项重要技能,通过熟练掌握`CASE`语句、动态SQL以及聚合函数的使用,可以高效地满足各类数据整理和分析的需求。

    sql行转列动态与静态

    根据题目提供的信息,“sql行转列动态与静态”这一主题介绍了三种实现行转列的方法:静态方式、动态方式以及动态生成列的方式。接下来,我们将详细介绍这三种方法及其应用场景。 ### 一、静态方式 静态方式是最...

    sqlserver 把行转成列

    在提供的"行转列.sql"文件中,可能包含了具体的行转列操作示例。通过分析这个文件,你可以更直观地学习如何在SQL Server中进行行转列操作。请打开文件查看具体代码,并根据实际情况调整和使用。

    sql2005列转行存储过程代码

    在SQL Server 2005中,处理数据时有时会遇到需要将表格的列转换为行的需求,这种操作被称为“行列转换”。SQL Server 提供了一些方法来实现这一目标,包括使用UNPIVOT操作和创建自定义存储过程。在本案例中,我们将...

Global site tag (gtag.js) - Google Analytics