台灣最大程式設計社群網站
線上人數
1714
 
會員總數:246134
討論主題:189713
歡迎您免費加入會員
討論區列表 >> MS SQL >> 如何結合所有的colums資料
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何結合所有的colums資料
價值 : 50 QP  點閱數:755 回應數:3
樓主

OMG
門外漢
0 80
981 41
發送站內信

我想要將一個table "所有"欄位的資料動態抓出來後
(裡面有varchar , int 等型態)
concatenate 成一個varchar欄位,並且以','分隔
請問這該怎麼寫呢?

搜尋相關Tags的文章: [ concatenate ] ,
本篇文章發表於2016-01-22 16:40
1樓
最有價值解答

pilipala
檢舉此回應

For XML Path
http://www.blueshop.com.tw/board/FUM20041006152735ZFS/BRD201205031505341F6.html
本篇文章回覆於2016-01-22 16:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
到 INFORMATION_SCHEMA 抓欄位出來後用for合併.
http://blog.miniasp.com/post/2007/11/05/How-to-get-detailed-Data-Dictionary-in-SQL-Server-2005.aspx
本篇文章回覆於2016-01-25 15:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓

用sp_columns把結果存在資料表內 再跑一個迴圈 把它select出來

create procedure columns_list
(@tablename nvarchar(50)='itlog')
as
create table #rep
(TABLE_QUALIFIER nvarchar(50),
TABLE_OWNER nvarchar(50),
TABLE_NAME nvarchar(50),
COLUMN_NAME nvarchar(50),
DATA_TYPE nvarchar(50),
TYPE_NAME nvarchar(50),
PRECISION nvarchar(50),
LENGTH nvarchar(50),
SCALE nvarchar(50),
RADIX nvarchar(50),
NULLABLE nvarchar(50),
REMARKS nvarchar(50),
COLUMN_DEF nvarchar(50),
SQL_DATA_TYPE nvarchar(50),
SQL_DATETIME_SUB nvarchar(50),
CHAR_OCTET_LENGTH nvarchar(50),
ORDINAL_POSITION nvarchar(50),
IS_NULLABLE nvarchar(50),
SS_DATA_TYPE nvarchar(50))
insert #rep
exec sp_columns @tablename

declare @COLUMN_NAME nvarchar(50)
declare @sql nvarchar(max)
set @sql=''

DECLARE crx CURSOR FOR
select COLUMN_NAME from #rep
OPEN crx
FETCH NEXT FROM crx into @COLUMN_NAME
WHILE(@@FETCH_STATUS=0)
BEGIN

set @sql=@sql+@COLUMN_NAME+','

FETCH NEXT from crx into @COLUMN_NAME
END
CLOSE crx
DEALLOCATE crx

select @sql
本篇文章回覆於2016-01-28 14:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.