首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server 2012 新函數 CONCAT:多型別字串串接不再需 CAST

     編輯:MySQL 資料庫相關知識

SQL Server 2012 引入 CONCAT(),解決舊版本需手動 CAST/CONVERT 再用 + 串接的痛點。支援最多 255 參數,自動處理 NULL 與隱含型別轉換。

語法

CONCAT ( string_value1, string_value2 [, string_valueN ] )
  • 至少 2 參數,最多 255。
  • 參數可為任何可隱含轉換為字串的型別 (int, float, datetime 等)。
  • 任何 NULL 視為空字串 '';全 NULL 回傳 VARCHAR(1) 空字串。

範例:混合型別串接

DECLARE @a VARCHAR(100) = 'Jim is now ';
DECLARE @b INT = 10;
DECLARE @c VARCHAR(200) = ' years old';

-- 新寫法:自動處理 INT→VARCHAR
SELECT CONCAT(@a, @b, @c);  
-- 結果:Jim is now 10 years old

-- 舊寫法:需顯式轉換
SELECT @a + CAST(@b AS VARCHAR) + @c;  -- 同樣結果但較繁瑣

回傳型別規則

輸入型別輸出型別
SQL-CLR (UDT)NVARCHAR(MAX)
NVARCHAR(MAX)NVARCHAR(MAX)
NVARCHAR(≤4000)NVARCHAR(≤4000)
VARBINARY(MAX)NVARCHAR(MAX)
其他型別VARCHAR(≤8000)*

* 若任一參數為任意長度 NVARCHAR,輸出升級為 NVARCHAR(MAX)。

同版本其他新函數速查

  • 轉換:PARSE、TRY_CONVERT、TRY_PARSE
  • 日期時間:DATEFROMPARTS、DATETIME2FROMPARTS、EOMONTH、TIMEFROMPARTS 等
  • 邏輯:CHOOSE、IIF
  • 字串:FORMAT (依 .NET 格式化字串輸出)

升級建議

若專案仍在 SQL Server 2008 R2 或更舊版本,升級至 2012+ 即可享受 CONCAT 簡化字串處理,減少 Bug 並提升可讀性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved