SQL Server 2012 的 T-SQL 新功能 - 字串函數

本文將介紹 SQL Server 2012 T-SQL 新的字串字串函數。

這一篇筆者繼續介紹 T-SQL 的新功能,今天談到的是新的字串函數,在 SQL Server 2012 中您可以利用 CONCAT 函數來組合兩個以上的字串,例如下列的程式碼:

   1:  DECLARE @t TABLE (c1 varchar(50),c2 varchar(50),c3 nvarchar(50))
   2:  INSERT INTO @t
   3:  SELECT 'SQL ','Server 2012 ',N'中文版' UNION ALL
   4:  SELECT 'SQL ','Server 2012 ',N'English Edition'
   5:  
   6:  SELECT *,CONCAT(c1,c2,c3)
   7:  FROM @t

【執行結果】

 

image

 

使用 CONCAT 函數若要組合的字串當中有 NULL,則會轉換成空白,若所有要組合的字串都是 NULL,則回傳 varchar(1) 的空白字串。

   1:  DECLARE @t TABLE (c1 varchar(50),c2 varchar(50),c3 nvarchar(50))
   2:  
   3:  INSERT INTO @t
   4:  SELECT 'SQL ','Server 2012 ',N'中文版' UNION ALL
   5:  SELECT 'SQL ','Server 2012 ',N'English Edition' UNION ALL
   6:  SELECT 'SQL -',null, N'- Server 2012 簡體版'--故意在NULL欄位前後加入-來檢視CONCAT遇到NULL的處理結果
   7:  
   8:  SELECT *,CONCAT(c1,c2,c3)
   9:  FROM @t

 

【執行結果】

 

image

 

另外,您也可以利用 FORMAT 函數來做資料的格式化,這和 .Net 應用程式類似,有開發過 .NET 應用程式的開發人員應該很熟悉。

 

   1:  --將整數格式化為貨幣型態
   2:  SELECT FORMAT(123,'c','zh-TW')
   3:  SELECT FORMAT(123,'c','zh-CN')
   4:  SELECT FORMAT(123,'c')
   5:  
   6:  --將日期格式化為自訂格式
   7:  SELECT GETDATE()
   8:       ,FORMAT(GETDATE(),'yyyy/MM/dd','en-US')
   9:       ,FORMAT(GETDATE(),'yyyyMMdd')
  10:       ,FORMAT(GETDATE(),'MM/dd/yyyy')
  11:  

 

【執行結果】

 

image

 

【參考資料】