我正在尝试使用以下命令加入SQL中的两个字段;
SELECT [NUM] & [ITEMNUM] AS LINKCODE
FROM mydatabase
当我运行时,我收到错误;
Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the varchar value 'O00000001' to data type int.
这可能很容易,但我对SQL很新。任何帮助将不胜感激:)
谢谢。
答案 0 :(得分:3)
您不能只是将数字和字符串一起添加。您必须首先使用相同的数据类型。首先转换为varchar
SELECT cast([NUM] as varchar) + [ITEMNUM] AS LINKCODE
FROM mydatabase
答案 1 :(得分:1)
如果您使用的是SQL Server 2012+,则可以使用
SELECT CONCAT([NUM],[ITEMNUM]) AS LINKCODE
FROM mytable
这会将NULL
视为空字符串,并将数值转换为字符串。
答案 2 :(得分:0)
当你连接两个可能为null的列时,整体结果可能是NULL,如下所示:
SELECT NULL + [Something]
结果为NULL。因此,您的示例需要包含一些NULL处理方法:
SELECT
ISNULL(cast([NUM] as varchar), SPACE(0)) + ISNULL(CAST([ITEMNUM] as VARCHAR), SPACE(0)) AS LINKCODE
FROM mydatabase