declare @vSQL1 nvarchar(1000), @vSQL2 nvarchar(500), @ColumnName varchar(50), @RunDate datetime

-- 取得 Table 中以年月設計的欄位最大值 (考慮未來維護的人只知道增加欄位而未修改程式)
select @RunDate = convert(char(8), convert(int, max(substring(col.name, 8, 4)) + '01') + 19110000)
from sysobjects obj join syscolumns col on obj.id = col.id
where obj.name = 'v2_繳款記錄' and col.name like 'INCOME_%'

set @vSQL1 = 'update V2_繳款記錄 set FIRST_PAY_DATE = V1.FIRST_PAY_DATE'

while @RunDate >= '2006-02-01' begin

set @ColumnName = 'INCOME_' + convert(char(4), (datepart(year, @RunDate) - 1911) * 100 + datepart(month, @RunDate))
set @vSQL1 = @vSQL1 + ', ' + @ColumnName + ' = V1.' + @ColumnName
set @RunDate = dateadd(month, -1, @RunDate)

continue end

set @vSQL1 = @vSQL1 + ' from V2_繳款記錄 V2'
+ ' join V2_繳款記錄_債協專用 V1 on V1.CUST_IDN = V2.CUST_IDN'

execute sp_executesql @vSQL1


引用自:藍色小惡魔用 SQL 語法動態組合 SQL
http://www.imp.idv.tw/play/forum/viewthread?thread=743

好啦... 吸收完前兩個簡單的範例後 再來個難一點的
主要是稍加改變一下動態欄位的組合方式
另外考慮這種呆呆欄位 可能無限制開下去 加入永續執行的概念

當然 欄位範圍的撈取需要再加強其他條件 避免撈到錯誤的欄位進行比對 才能一勞永逸
主要是因為已經存在的欄位規則是如此了
如果各位以後有計畫要這樣玩 SQL 那欄位名稱就要開奇怪點
避免後續維護的人 開出影響判斷的欄位 畢竟 "INCOME" 是很通俗的單字
其他加強的部份 大家自己慢慢玩喔......

 


sql 動態欄位 sp_executesql sql 變數 欄位 sql 組合欄位 sql 動態 table sql 語法 動態欄位 sql 欄位名稱 動態 sql語法範例 sql 動態 欄位 select 動態欄位 動態語法 sql 動態table sql 欄位 變數 組合 sql java sql update 動態 ms sql in 語法 兩個欄位 sql 組合語法 ms sql table 組合 sql+變數+欄位 ms sql 動態 select 兩個sql 語法 組合 ms sql 動態 欄位 datepart sql ms sql 動態table excel使用sql語法 ms sql 資料庫 欄位更新 sql 欄位顯示 其他table ms+sql+欄位名稱變數 sql語法 select tablename用變數 mssql select 動態資料表 table scheme mssql sp_executesql sp 動態組合 sql 語法 mssql table名稱用變數取代 sql 動態語法 mssql 動態declare 變數 sql 動態變數 mssql 動態欄位 sql 語法 datetime null sql語法 sql 語法datetime select 動態table sql 欄位名稱可用變數 "sp_executesql" "update" sql+動態欄位 select 動態欄位名稱 sql動態語法 select 欄位 動態 sql語法 組合 sp 變數 欄位名稱 sql難的語法 "動態欄位名稱"+"sql" 友善列印語法 sp_executesql update 動態sql語法 sp_executesql user 動態語法 sql sp_executesql 藍色小 sql 動態資料表 sp_executesql 语法 sql 動態選擇欄位 sql 2005 sp obj sql 動態欄位\ sql 2005 動態欄位 sql 組合 欄位名稱 sql 2005 維護計畫 sql 開table 到資料 sql char nvarchar join sql 語法 今天日期 sql convert sql 語法 越簡單越好 sql convert char to int sql 撈table 的 欄位名稱 sql convert int execute sp_executesql sql convert(int,欄位值) sql 欄位拉長 sql date 時間 convert hhmmss imp語法 sql dateadd sql+語法+變數+$+@ sql dateime sql取得欄位 sql datepart sql組合欄位 sql datepart 範例 sql語法 兩個max sql distince 組合欄位 sql語法substring sql execute max 語法 sql語法範例 set select sql from 動態table syscolumns sql in 組合 table動態欄位 sql join 動態table 丟sql知道欄位名稱 sql max substring 動態 tablename sql nvarchar where 語法 動態表格 sql sql print 動態 動態與法 sql select update組合 動態欄位 sql sql select 動態 sql 動態組合 sql select 動態 欄位名稱 sql 動態資料表名 sql select 動態欄位 sql 動態增加欄位 sql select 動態欄位名稱 sql 動態欄 sql select 組合語法 sql 動態欄位 convert sql select 欄位名稱 動態 sql 動態欄位名稱 sql select 欄位組合 sql 組合 sql sp 變數 抓不到值 sql 組合sql sql table name是動態的 declare table 取得欄位名稱 sql table 動態 sql 語法 sql table所有欄位 藍 sql 語法 null sql top 變數 最大值 sql 語法 完整教學 sql update select 组合 sql 語法 組合 sql update 動態 sql 語法 欄位組合 sql update 動態最後 sql 語法範例 sql 'update' 動態欄位 sql 離線工作 語法 sql update 組合 sql 欄位名稱 sql update 語法 set null sql 欄位名稱 變數 sql 丟變數到 in sql 欄位名稱動態 sql 列印欄位名稱 sql 欄位是null就不印出 sql 动态join sql 變數 組合 sql 多欄位組合 語法 sql+日期組合 sql 如何 更新 變動 欄位 sql+動態欄位名稱 sql 判斷動態資料表 sql+欄位+組合 sql 找到兩個欄位的範圍 sql多個欄位比對 sql 找到最大值 取代 sql動態table sql 抄寫 table 語法 sql動態欄位 sql 抄寫語法 sql語法 sql 取代 最大值 欄位 sql語法 年月 sql 取得表格 欄位 sql語法 動態select sql 於那欄位 sql語法sp sql 動態 join sql語法如何寫動能table sql 動態 select sql語法範例 declare "動態欄位的" sql撈取欄位名稱 sql 動態 table 欄位 sql變數欄位名稱 sql 動態 where table name 動態 sql 動態 修改 table table 欄位 sql 語法 sql 動態 資料表 update的sql語法 sql 動態 語法 火狐 狀態列拉長語法 sql 動態 欄 快速sql型態改變語法 convert(varchar(100), rundate, 20) 修改 語法sp sql 動態 欄位說明 動態select欄位 sql 動態select 動態update 欄位 sql 組合 sql 語法 動態表格名稱 組合sql 動態組合sql 網誌動態語法 ms sql exec 丟給變數 澳洲 藍山 動態欄位 组合 sql 動態欄位語法 "ms sql" print語法 ms sql from 組合 sql 動態條件 組合sql語法 sql 動態tablename 語法 列印 sql 動態update 變數欄位 sql sql 動態更新欄位名稱 sql 動態指定欄位值 sql 動態查詢欄位

sql 动态栏位 sp_executesql sql 变数 栏位 sql 组合栏位 sql 动态 table sql 语法 动态栏位 sql 栏位名称 动态 sql语法范例 sql 动态 栏位 select 动态栏位 动态语法 sql 动态table sql 栏位 变数 组合 sql java sql update 动态 ms sql in 语法 两个栏位 sql 组合语法 ms sql table 组合 sql+变数+栏位 ms sql 动态 select 两个sql 语法 组合 ms sql 动态 栏位 datepart sql ms sql 动态table excel使用sql语法 ms sql 资料库 栏位更新 sql 栏位显示 其他table ms+sql+栏位名称变数 sql语法 select tablename用变数 mssql select 动态资料表 table scheme mssql sp_executesql sp 动态组合 sql 语法 mssql table名称用变数取代 sql 动态语法 mssql 动态declare 变数 sql 动态变数 mssql 动态栏位 sql 语法 datetime null sql语法 sql 语法datetime select 动态table sql 栏位名称可用变数 "sp_executesql" "update" sql+动态栏位 select 动态栏位名称 sql动态语法 select 栏位 动态 sql语法 组合 sp 变数 栏位名称 sql难的语法 "动态栏位名称"+"sql" 友善列印语法 sp_executesql update 动态sql语法 sp_executesql user 动态语法 sql sp_executesql 蓝色小 sql 动态资料表 sp_executesql 语法 sql 动态选择栏位 sql 2005 sp obj sql 动态栏位\ sql 2005 动态栏位 sql 组合 栏位名称 sql 2005 维护计划 sql 开table 到资料 sql char nvarchar join sql 语法 今天日期 sql convert sql 语法 越简单越好 sql convert char to int sql 捞table 的 栏位名称 sql convert int execute sp_executesql sql convert(int,栏位值) sql 栏位拉长 sql date 时间 convert hhmmss imp语法 sql dateadd sql+语法+变数+$+@ sql dateime sql取得栏位 sql datepart sql组合栏位 sql datepart 范例 sql语法 两个max sql distince 组合栏位 sql语法substring sql execute max 语法 sql语法范例 set select sql from 动态table syscolumns sql in 组合 table动态栏位 sql join 动态table 丢sql知道栏位名称 sql max substring 动态 tablename sql nvarchar where 语法 动态表格 sql sql print 动态 动态与法 sql select update组合 动态栏位 sql sql select 动态 sql 动态组合 sql select 动态 栏位名称 sql 动态资料表名 sql select 动态栏位 sql 动态增加栏位 sql select 动态栏位名称 sql 动态栏 sql select 组合语法 sql 动态栏位 convert sql select 栏位名称 动态 sql 动态栏位名称 sql select 栏位组合 sql 组合 sql sp 变数 抓不到值 sql 组合sql sql table name是动态的 declare table 取得栏位名称 sql table 动态 sql 语法 sql table所有栏位 蓝 sql 语法 null sql top 变数 最大值 sql 语法 完整教学 sql update select 组合 sql 语法 组合 sql update 动态 sql 语法 栏位组合 sql update 动态最后 sql 语法范例 sql 'update' 动态栏位 sql 离线工作 语法 sql update 组合 sql 栏位名称 sql update 语法 set null sql 栏位名称 变数 sql 丢变数到 in sql 栏位名称动态 sql 列印栏位名称 sql 栏位是null就不印出 sql 动态join sql 变数 组合 sql 多栏位组合 语法 sql+日期组合 sql 如何 更新 变动 栏位 sql+动态栏位名称 sql 判断动态资料表 sql+栏位+组合 sql 找到两个栏位的范围 sql多个栏位比对 sql 找到最大值 取代 sql动态table sql 抄写 table 语法 sql动态栏位 sql 抄写语法 sql语法 sql 取代 最大值 栏位 sql语法 年月 sql 取得表格 栏位 sql语法 动态select sql 于那栏位 sql语法sp sql 动态 join sql语法如何写动能table sql 动态 select sql语法范例 declare "动态栏位的" sql捞取栏位名称 sql 动态 table 栏位 sql变数栏位名称 sql 动态 where table name 动态 sql 动态 修改 table table 栏位 sql 语法 sql 动态 资料表 update的sql语法 sql 动态 语法 火狐 状态列拉长语法 sql 动态 栏 快速sql型态改变语法 convert(varchar(100), rundate, 20) 修改 语法sp sql 动态 栏位说明 动态select栏位 sql 动态select 动态update 栏位 sql 组合 sql 语法 动态表格名称 组合sql 动态组合sql 网志动态语法 ms sql exec 丢给变数 澳洲 蓝山 动态栏位 组合 sql 动态栏位语法 "ms sql" print语法 ms sql from 组合 sql 动态条件 组合sql语法 sql 动态tablename 语法 列印 sql 动态update 变数栏位 sql sql 动态更新栏位名称 sql 动态指定栏位值 sql 动态查询栏位

 

 

 


    藍色小惡魔 發表在 痞客邦 留言(0) 人氣()