读书人

如何去掉多表查询结果中的重复字段

发布时间: 2012-11-16 14:12:15 作者: rapoo

怎么去掉多表查询结果中的重复字段?

SQL code
SELECT    字段序号=a.colorder ,    字段名=a.name ,     外键字段所在的表=CASE WHEN tony.fkey is not null and tony.fkey=a.colid                THEN object_name(tony.rkeyid) ELSE ''           END ,     外键字段=CASE WHEN tony.fkey is not null and tony.fkey=a.colid                 THEN (SELECT name FROM syscolumns                       WHERE colid=tony.fkey AND id=tony.fkeyid)                       ELSE ''             END,     类型=b.name FROM dbo.syscolumns a    LEFT JOIN dbo.systypes b ON a.xtype = b.xusertype     INNER JOIN dbo.sysobjects d ON a.id = d.id AND d.xtype = 'U' AND d.status >= 0    LEFT JOIN sysobjects htl ON htl.parent_obj=d.id AND htl.xtype='F'    LEFT JOIN sysforeignkeys tony on htl.id=tony.constidWHERE d.name='Articles'  --这里输入包含表名称的条件ORDER BY d.id, a.colorder


[解决办法]
SQL code
SELECT DISTINCT    字段序号=a.colorder ,    字段名=a.name ,     外键字段所在的表=CASE WHEN tony.fkey is not null and tony.fkey=a.colid                THEN object_name(tony.rkeyid) ELSE ''           END ,     外键字段=CASE WHEN tony.fkey is not null and tony.fkey=a.colid                 THEN (SELECT name FROM syscolumns                       WHERE colid=tony.fkey AND id=tony.fkeyid)                       ELSE ''             END,     类型=b.name FROM dbo.syscolumns a    LEFT JOIN dbo.systypes b ON a.xtype = b.xusertype     INNER JOIN dbo.sysobjects d ON a.id = d.id AND d.xtype = 'U' AND d.status >= 0    LEFT JOIN sysobjects htl ON htl.parent_obj=d.id AND htl.xtype='F'    LEFT JOIN sysforeignkeys tony on htl.id=tony.constidWHERE d.name='Articles'  --这里输入包含表名称的条件 

读书人网 >SQL Server

热点推荐