CONCAT (Transact-SQL)
適用于: Microsoft Fabric 中 Microsoft Fabric
倉儲中的 SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
Azure Synapse
Analytics Analytics Platform System (PDW)
SQL 分析端點
此函式會傳回透過以端對端方式串連 (或聯結) 兩個以上字串值所產生的字串。
注意
若要在串連期間新增分隔值,請使用 CONCAT_WS 。
Syntax
CONCAT ( argument1 , argument2 [ , argumentN ] ... )
注意
若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔 。
引數
argument1 , argument2 [ , argumentN ]
任何字串值的運算式。 CONCAT
函式需要至少兩個引數,而且不能超過 254 個引數。
傳回類型
長度和類型取決於輸入的字串值。
備註
CONCAT
會採用可變數量的字串引數,並將其串連 (聯結) 成單一字串。 它至少需要兩個輸入值:否則, CONCAT
會引發錯誤。 CONCAT
會在串連之前將所有引數隱含地轉換成字串類型。 CONCAT
會將 Null 值隱含地轉換成空字串。 如果 CONCAT
收到具有所有 NULL
值的引數,則會傳回 Varchar(1) 類型的 空字串。 隱含轉換成字串會遵循現有的資料類型轉換規則。 如需有關資料類型轉換的詳細資訊,請參閱 CAST 和 CONVERT (Transact-SQL)。
傳回類型取決於引數類型。 此表說明對應:
輸入類型 | 輸出類型及長度 |
---|---|
1.SQL-CLR 系統類型、SQL-CLR UDT 或 Nvarchar(max) 的任何引數 | nvarchar(max) |
2. 否則,Varbinary(max) 或 Varchar(max) 類型的 任何引數 | varchar(max) ,除非其中一個參數是任何長度的 nvarchar。 在此情況下,CONCAT 會傳回 nvarchar(max) 類型的結果。 |
3. 否則,Nvarchar 類型 為最多 4000 個字元的任何引數( Nvarchar( < = 4000 ) ) | Nvarchar( < = 4000 ) |
4.在所有其他情況下 | Varchar 類型為最多 8000 個字元的任何引數( Varchar( < = 8000 ), 除非其中一個參數是 任何長度的 Nvarchar 。 在該情況下,CONCAT 會傳回 nvarchar(max) 類型的結果。 |
CONCAT
收到長度 <= 4000 個字元的 nvarchar 輸入引數,或長度 <= 8000 個字元的 varchar 輸入引數時,隱含轉換會影響結果長度。 其他資料類型在隱含地轉換成字串時,長度會不同。 例如, 值為 14
的 int 字串長度為 2,而 具有值的 1234.56789
浮點 數則字串長度為 7 ( 1234.57
)。 因此,這兩個值的串連會傳回長度不超過 9 個字元的結果。
如果沒有任何輸入引數具有支援的大型物件 (LOB) 類型,則不論傳回型別為何,傳回型別都會截斷為長度為 8,000 個字元。 這項截斷可以保留空間,讓產生計畫更具效率。
CONCAT
可以在執行 SQL Server 2012 (11.x) 和更新版本的連結伺服器上從遠端執行。 對於較舊的連結伺服器, CONCAT
在連結的伺服器傳回非串連值之後,作業將會在本機進行。
範例
A. 使用 CONCAT
SELECT CONCAT ('Happy ', 'Birthday ', 11, '/', '25') AS Result;
以下為結果集。
Result
--------------------
Happy Birthday 11/25
B. 搭配 Null 值使用 CONCAT
CREATE TABLE #temp (
emp_name NVARCHAR(200) NOT NULL,
emp_middlename NVARCHAR(200) NULL,
emp_lastname NVARCHAR(200) NOT NULL
);
INSERT INTO #temp
VALUES ('Name', NULL, 'Lastname');
SELECT CONCAT (emp_name, emp_middlename, emp_lastname) AS Result
FROM #temp;
以下為結果集。
Result
------------
NameLastname
相關內容
意見反應
提交並檢視相關的意見反應