一些常用SQL语句的总结-- 查询表内容

转载 2007年09月18日 11:36:00

 查询表内容
SELECT
表名=case when a.colorder=1 then d.name else '' end,
表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,
字段序号=a.colorder,
字段名=a.name,
标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in (
SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid
))) then '√' else '' end,
类型=b.name,
占用字节数=a.length,
长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允许空=case when a.isnullable=1 then '√'else '' end,
默认值=isnull(e.text,''),
字段说明=isnull(g.[value],'')
FROM syscolumns a
left join systypes b on a.xtype=b.xusertype
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join syscomments e on a.cdefault=e.id
left join sysproperties g on a.id=g.id and a.colid=g.smallid
left join sysproperties f on d.id=f.id and f.smallid=0
--where d.name='要查询的表' --如果只查询指定表,加上此条件
order by a.id,a.colorder
========================================================
SQL交*表实例
很简单的一个东西,见网上好多朋友问“怎么实现交*表?”,以下是我写的一个例子,数据库基于SQL SERVER 2000。
建表:
在查询分析器里运行:
CREATE TABLE [Test] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[subject] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Source] [numeric](18, 0) NULL
) ON [PRIMARY]
GO
INSERT INTO [test] ([name],[subject],[Source]) values (N'张三',N'语文',60)
INSERT INTO [test] ([name],[subject],[Source]) values (N'李四',N'数学',70)
INSERT INTO [test] ([name],[subject],[Source]) values (N'王五',N'英语',80)
INSERT INTO [test] ([name],[subject],[Source]) values (N'王五',N'数学',75)
INSERT INTO [test] ([name],[subject],[Source]) values (N'王五',N'语文',57)
INSERT INTO [test] ([name],[subject],[Source]) values (N'李四',N'语文',80)
INSERT INTO [test] ([name],[subject],[Source]) values (N'张三',N'英语',100)
Go

交*表语句的实现:
--用于:交*表的列数是确定的
select name,sum(case subject when '数学' then source else 0 end) as '数学',
sum(case subject when '英语' then source else 0 end) as '英语',
sum(case subject when '语文' then source else 0 end) as '语文'
from test
group by name

--用于:交*表的列数是不确定的

declare @sql varchar(8000)
set @sql = 'select name,'
select @sql = @sql + 'sum(case subject when '''+subject+'''
then source else 0 end) as '''+subject+''','
from (select distinct subject from test) as a
select @sql = left(@sql,len(@sql)-1) + ' from test group by name'
exec(@sql)
go
================================================================================

Sql Server中写查询表存储过程,并在winfrom中的dataGridView控件中显示表内容

用到的表:Class Sql Server 存储过程: create procedure usp_Class_select as begin   select * from Cl...

查询表内多字段同时重复记录的SQL语句

-查询表内多字段同时重复记录的SQL语句,比如现在有一人员表  (表名:peosons)若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来 select   p1.*   from   per...

查询表中相同数据的sql语句

--1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId f...

常用Ascii码查询表

  • 2013年02月20日 11:48
  • 180KB
  • 下载

K3常用查询表

  • 2013年09月24日 18:01
  • 9KB
  • 下载

SQL Server 2005 中查询表结构及索引

在 SQL Server 2005 中查询表结构及索引 -- 1. 表结构信息查询 -- ==================================================...
  • jjhua
  • jjhua
  • 2011年08月30日 14:45
  • 446

Matlab常用指令查询表

  • 2011年05月26日 16:34
  • 91KB
  • 下载

每日学习心得:SQL查询表的行列转换/小计/统计(with rollup,with cube,pivot解析)

2013-8-20 1.    SQL查询表的行列转换/小计/统计(with  rollup,with cube,pivot解析) 在实际的项目开发中有很多项目都会有报表模块,今天就通过一个小的S...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一些常用SQL语句的总结-- 查询表内容
举报原因:
原因补充:

(最多只允许输入30个字)