[SQL ] 請位欄位可以是變數嗎

作者: tsongs (......)   2022-02-24 15:37:42
資料庫名稱:MS SQL
資料庫版本:2008R2
內容/問題描述:
有一個table
部門 分類 年度 01 02 03
A 銷售 2021 250 300 250
A 折讓 2021 10 5 0
欄位01 02 03是各月份
select 01 FROM table where ...
這01能用變數取代嗎
declare @i int 轉換成2位補0 varchar(2)
select quotename(@i) from table
出來是[01]
失敗
我很多利用寄送的html報表要用到
現在是寫12次
其他嘗試還有
1.試用 sp_executesql
比寫12次複雜不少 ,寫一半放棄
2.轉成table (月,值)
稍微簡單一點,若沒有其他方法就用此方法
以下是要輸出HTML格式 為了顯示 1,234 要寫很長一串
來問有無簡單點的寫法
SET @Html = @Html + N'<td>' +
(SELECT Isnull(nullif(
convert(varchar(10),Left(convert(varchar(20),convert(money,[01
]),1),len(convert(varchar(20),convert(money,[01]),1))-3) ),'0') ,'')
FROM #tmp WHERE rid = @i) + N'</td>';
作者: MOONY135 (談無慾)   2022-02-24 19:32:00
為啥不撈出來用程式轉成報表....
作者: retsamsu   2022-02-25 16:34:00
SET @sql = 'select' [email protected]+ 'FROM table where ...';記得要 into 到 temp table然後 EXEC (@sql) 再 select temp table 就有你要的
作者: ken218 (ken218)   2022-02-27 16:32:00
做動態 SQL 指令的話要小心 SQL injection 攻擊哦
作者: kerokwxwen (小文)   2022-03-12 11:28:00
欄位可以是變數,關鍵字computed column

Links booklink

Contact Us: admin [ a t ] ucptt.com