[SQL ] 除了* 不想把欄位名稱都列出來的方法

作者: waiter337 (給開司一罐蘇格登)   2023-01-02 18:04:24
(針對 SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行)
資料庫名稱:ms-sql
資料庫版本:2019
內容/問題描述:
欄位很多 我想替換某個欄位名稱 跟欄位內的資料
但因為過於複雜
所以先從最簡單的操作
select * from 材料明細檔
開始嘗試
材料檔內有10~15個欄位
以下是參考的文章
https://www.sqlservercentral.com/forums/topic/how-to-use-stuff-and-for-xml-path-to-get-a-list-of-column-names-in-order-by-column_id
https://reurl.cc/AyWpQK 縮網址
目前的狀況是 能夠找到所有欄位名稱 並且也能print 出來
但無法帶入回select * from 材料明細檔 把資料找出來
是否有哪裡出錯了
DECLARE @Cols nvarchar(MAX)
SELECT @Cols=STRING_AGG(QUOTENAME(c.COLUMN_NAME), ', ') WITHIN GROUP (ORDER
BY c.ORDINAL_POSITION ASC)
FROM INFORMATION_SCHEMA.COLUMNS c
WHERE c.TABLE_NAME='材料明細檔'
AND c.TABLE_SCHEMA='dbo'
select @Cols from dbo.材料明細檔
作者: cutekid (可愛小孩子)   2023-01-02 20:22:00
exec("select " + @Cols + " from 材料明細")
作者: waiter337 (給開司一罐蘇格登)   2023-01-02 21:26:00
感謝 搞定!

Links booklink

Contact Us: admin [ a t ] ucptt.com