標籤:方便 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動態列查詢