如何连接两个字段和两者之间的文本?我已经尝试了所有的以下和没有奏效...用文本连接两个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我猜)。 –