1

如何在两者之间连接两个字段和文本?我已经尝试了以下所有方法,但没有任何效果......

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

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

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

4 回答 4

7

这应该工作

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

或者如果列是数字

select cast([fldCode1] as varchar(100)) + ':' + cast([fldCode2] as varchar(100))
from tab
于 2013-07-31T20:08:11.400 回答
3

第一种和最后一种形式无效,但第二种形式当然可以,假设列是字符串。如果列是数字、日期等,您需要先转换它们:

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

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

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

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

于 2013-07-31T20:08:44.647 回答
2

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

于 2013-07-31T20:12:00.257 回答
0

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

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' )
于 2017-09-28T15:32:16.720 回答