作者waiter337 (给开司一罐苏格登)
看板Database
标题[SQL ] 除了* 不想把栏位名称都列出来的方法
时间Mon Jan 2 18:04:24 2023
(针对
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.材料明细档
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.35.152.194 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1672653868.A.0F9.html
※ 编辑: waiter337 (114.35.152.194 台湾), 01/02/2023 18:57:01
1F:推 cutekid: exec("select " + @Cols + " from 材料明细") 01/02 20:22
2F:→ waiter337: 感谢 搞定! 01/02 21:26