0

我正在尝试使用以下命令连接 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 很陌生。任何帮助,将不胜感激 :)

谢谢你。

4

3 回答 3

3

您不能只是将数字和字符串相加。您必须首先使它们具有相同的数据类型。投到varchar第一

SELECT cast([NUM] as varchar) + [ITEMNUM] AS LINKCODE
FROM mydatabase
于 2013-09-18T13:39:05.787 回答
1

如果您使用的是 SQL Server 2012+,则可以使用

SELECT CONCAT([NUM],[ITEMNUM]) AS LINKCODE
FROM  mytable

这被视为NULL空字符串并将数值转换为字符串。

于 2013-09-18T13:46:56.873 回答
0

当您连接可能为空的两列时,总体结果可能为 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
于 2013-09-18T13:44:37.620 回答