星空网 > 软件开发 > 数据库

SQL动态列查询

数据库中为了实现表格数据的自由设置,我们经常设计纵表,或者列定义的表(如下KeyValue),定义一个列超级多的表中每个字段的意义。
但是在设计时简单的东西却很容易被人们忘记,如下一个简单但是很松散的列表查询。

 

--CREATE TABLE KeyValue--(--[key] NVARCHAR(50) ,--[value] NVARCHAR(50)--)CREATE TABLE TableNumber(Name NVARCHAR(50),Filed1 NVARCHAR(50),Filed2 NVARCHAR(50),Filed3 NVARCHAR(50),Filed4 NVARCHAR(50),Filed5 NVARCHAR(50),)INSERT INTO dbo.TableNumber    ( Name ,     Filed1 ,     Filed2 ,     Filed3 ,     Filed4 ,     Filed5    )VALUES ( N'张三2' , -- Name - nvarchar(50)     N'中国2' , -- Filed1 - nvarchar(50)     N'河北2' , -- Filed2 - nvarchar(50)     N'唐山2' , -- Filed3 - nvarchar(50)     N'' , -- Filed4 - nvarchar(50)     N'' -- Filed5 - nvarchar(50)    )INSERT INTO KeyValue VALUES('Filed1','国家')INSERT INTO KeyValue VALUES('Filed2','省')INSERT INTO KeyValue VALUES('Filed3','市')DECLARE @msg NVARCHAR(max)=''SELECT @msg=@msg+','+[key]+' as '+value FROM KeyValue SET @msg='Name as 名称'+@msg;DECLARE @sql NVARCHAR(max);SET @sql='select '+@msg +' from TableNumber'EXEC( @sql)

SQL动态列查询

 

这种设计可用于自定义列表查询,EXCEL导出,很方便,使用起来比在C#中写更便捷,不过缺点就是依赖数据库。




原标题:SQL动态列查询

关键词:sql

sql
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流