SQL字段名自定义显示应用实例

----------------------------------------------------------------------------------

-- Author : htl258(Tony)

-- Date   : 2010-06-30 09:35:18

-- 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 2)

-- 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),[b] [nvarchar](10),[c] [int])
INSERT INTO [tb]
SELECT '张三','北京','134' UNION ALL
SELECT '李四','北京','135'

--> 生成测试数据表: [cols]
IF OBJECT_ID('[cols]') IS NOT NULL
   
DROP TABLE [cols]
GO
CREATE TABLE [cols] ([tbname] [nvarchar](10),[colname] [nvarchar](10),[showname] [nvarchar](10))
INSERT INTO [cols]
SELECT 'tb','a','姓名' UNION ALL
SELECT 'tb','b','联系方式' UNION ALL
SELECT 'tb','c','Email'

--SELECT * FROM [tb]
--
SELECT * FROM [cols]

-->SQL查询如下:
DECLARE @s VARCHAR(8000)
SELECT @s=ISNULL(@s+',','')
        
+ QUOTENAME(a.[name])+' AS '+QUOTENAME(b.[showname])
FROM syscolumns a
   
JOIN cols b
       
ON OBJECT_ID(b.tbname)=a.id
           
AND a.name=b.colname
           
AND b.[tbname]='tb'
EXEC('SELECT '+@s+' FROM tb')
/*
姓名         联系方式       Email
---------- ---------- -----------
张三         北京         134
李四         北京         135

(2 行受影响)
*/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值