CONCATENATE
在(標準 ANSI / ISO)SQL 中,字串連線的運算子是||
。除 SQL Server 之外的所有主要資料庫都支援此語法:
SELECT 'Hello' || 'World' || '!'; --returns HelloWorld!
許多資料庫支援 CONCAT
函式來連線字串:
SELECT CONCAT('Hello', 'World'); --returns 'HelloWorld'
有些資料庫支援使用 CONCAT
加入兩個以上的字串(Oracle 沒有):
SELECT CONCAT('Hello', 'World', '!'); --returns 'HelloWorld!'
在某些資料庫中,必須轉換或轉換非字串型別:
SELECT CONCAT('Foo', CAST(42 AS VARCHAR(5)), 'Bar'); --returns 'Foo42Bar'
某些資料庫(例如,Oracle)執行隱式無損轉換。例如,CLOB
和 NCLOB
上的 CONCAT
產生了一個 NCLOB
。數字上的 CONCAT
和 varchar2
會導致 varchar2
等:
SELECT CONCAT(CONCAT('Foo', 42), 'Bar') FROM dual; --returns Foo42Bar
有些資料庫可以使用非標準的+
運算子(但在大多數情況下,+
僅適用於數字):
SELECT 'Foo' + CAST(42 AS VARCHAR(5)) + 'Bar';
在 SQL Server <2012 上,不支援 CONCAT
,+
是連線字串的唯一方法。