SQL動態列查詢

來源:互聯網
上載者:User

標籤:方便   table   tab   key   匯出   nbsp   中國   使用   int   

資料庫中為了實現表格式資料的自由設定,我們經常設計縱表,或者列定義的表(如下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)

 

這種設計可用於自訂欄表查詢,EXCEL匯出,很方便,使用起來比在C#中寫更便捷,不過缺點就是依賴資料庫。

SQL動態列查詢

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.