[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