使用文本连接两个SQL字段

时间:2013-07-31 20:06:54

标签: sql sql-server-2008 concatenation

如何在两者之间连接两个字段和文本?我已经尝试了以下所有内容,但没有任何工作......

([fldCode1] || ':' ||[fldCode2]) AS Method

([fldCode1] + ':' + [fldCode2]) AS Method

([fldCode1] & ':' & [fldCode2]) AS Method
                                                *** & cannot be used with varchar 

4 个答案:

答案 0 :(得分:7)

这应该有效

select [fldCode1] + ':' + [fldCode2]
from tab

或如果列是数字

select cast([fldCode1] as varchar(100)) + ':' + cast([fldCode2] as varchar(100))
from tab

答案 1 :(得分:3)

第一个和最后一个表单无效,但第二个表单当然可以,假设列是字符串。如果列是数字,日期等,则需要先进行转换:

SELECT Method = CONVERT(VARCHAR(255), fldCode1)
        + ':' + CONVERT(VARCHAR(255), fldCode2)
FROM ... 

如果它们是字符串并且以下内容不起作用:

SELECT Method = fldCode1 + ':' + fldCode2 FROM ...

然后你需要更好地定义“不起作用”的意思......

答案 2 :(得分:2)

选择CONCAT('fldCode1',':','fldCode2')作为方法;

答案 3 :(得分:0)

从2008 SQL SERVER 2008开始(如果您尝试连接空列,请不要忘记使用ISNULL函数,否则结果将为null)。

SELECT ISNULL('myFirstString', '') + ' ' + ISNULL('mySecondString', '')

如果您不想使用ISNULL功能,也可以通过这种方式设置CONCAT_NULL_YIELDS_NULL,这样就可以了。

SET CONCAT_NULL_YIELDS_NULL OFF
SELECT 'myFirstString' + ' ' + 'mySecondString'

从SQL SERVER 2012开始就像那样简单

SELECT CONCAT ( 'Happy ', 'Birthday ', 11, '/', '25' )