如何連接兩個字段和兩者之間的文本?我已經嘗試了所有的以下和沒有奏效...用文本連接兩個SQL字段
([fldCode1] || ':' ||[fldCode2]) AS Method
([fldCode1] + ':' + [fldCode2]) AS Method
([fldCode1] & ':' & [fldCode2]) AS Method
*** & cannot be used with varchar
如何連接兩個字段和兩者之間的文本?我已經嘗試了所有的以下和沒有奏效...用文本連接兩個SQL字段
([fldCode1] || ':' ||[fldCode2]) AS Method
([fldCode1] + ':' + [fldCode2]) AS Method
([fldCode1] & ':' & [fldCode2]) AS Method
*** & cannot be used with varchar
這應該工作
select [fldCode1] + ':' + [fldCode2]
from tab
,或者如果列是數字
select cast([fldCode1] as varchar(100)) + ':' + cast([fldCode2] as varchar(100))
from tab
請[no varchar without length](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-declaring-varchar-without-length.aspx)。 –
@Parado。 。 。指定'varchar'時,應始終包含長度。雖然'cast'和'convert'的默認值是可以的,但在其他情況下默認值是不同的(並且很麻煩)。 –
@戈登即使在這裏,如果任何一列包含> 30個字符,默認值可能就不會確定... –
的第一個和最後形式是無效的,但第二個肯定沒問題,假設列是字符串。如果列是數字,日期等。你需要將其先轉換:
SELECT Method = CONVERT(VARCHAR(255), fldCode1)
+ ':' + CONVERT(VARCHAR(255), fldCode2)
FROM ...
如果他們串及以下不工作:
SELECT Method = fldCode1 + ':' + fldCode2 FROM ...
然後,你需要更好地界定什麼「不起作用」的意思是......
作爲方法選擇CONCAT('fldCode1',':','fldCode2');
不,'CONCAT'僅適用於SQL Server 2012. –
適用於MySQL 5.5 – AdRock
從2008年開始SQL SERVER 2008(不要忘記使用ISNULL函數,否則你的結果將爲空),如果你嘗試concattenate空列。
SELECT ISNULL('myFirstString', '') + ' ' + ISNULL('mySecondString', '')
您還可以設置CONCAT_NULL_YIELDS_NULL爲關閉這種方式,如果你不希望使用ISNULL功能,因此這將工作。
SET CONCAT_NULL_YIELDS_NULL OFF
SELECT 'myFirstString' + ' ' + 'mySecondString'
與SQL Server 2012就這麼
SELECT CONCAT ('Happy ', 'Birthday ', 11, '/', '25')
對於中例如簡單,什麼是「沒有奏效」啓動呢?另外兩個*應該失敗,因爲你借用了其他語言的連接語法(PHP和VB我猜)。 –