此 SQL 回傳表“MyTable”的以逗號分隔的列名串列
DECLARE @colnames VARCHAR(max);
SELECT
@colnames = COALESCE(@colnames ',', '') column_name
FROM
CORP_MLR_Rebates.INFORMATION_SCHEMA.COLUMNS
WHERE
table_name = 'MyTable';
SELECT @colnames;
為什么以下內容不給我一個制表符分隔的串列相同的列?相反,它是空間分隔的。
DECLARE @colnames VARCHAR(max);
SELECT
@colnames = COALESCE(@colnames char(9), '') column_name
FROM
CORP_MLR_Rebates.INFORMATION_SCHEMA.COLUMNS
WHERE
table_name = 'MyTable';
SELECT @colnames;
uj5u.com熱心網友回復:
在我的測驗中它確實有效,我想它只是取決于你如何檢索結果(我必須將結果輸出到檔案以獲得正確的結果)
uj5u.com熱心網友回復:
您可能會使用 SSMS GUI 獲得空間。將結果作為文本或檔案回傳將為您提供選項卡;例如 CHAR(9)。考慮這三個都可以完成作業的查詢:
;--== 1. Updatable Variable
DECLARE @colnames VARCHAR(max);
SELECT @colnames = COALESCE(@colnames CHAR(9), '') column_name
FROM INFORMATION_SCHEMA.COLUMNS AS c;
SELECT ColNames = @colnames;
;--== 2. Using STRING_AGG
SELECT ColNames = STRING_AGG(c.COLUMN_NAME , CHAR(9))
FROM INFORMATION_SCHEMA.COLUMNS AS c;
;--== 3. Using FOR XML PATH
SELECT ColNames =
(SELECT c.COLUMN_NAME CHAR(9) FROM INFORMATION_SCHEMA.COLUMNS AS c FOR XML PATH(''));
結果:

如果我們切換到Results as Text:

現在我們得到(注意標簽):

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/431796.html
標籤:tsql
上一篇:在表中添加不同的計數列
