尝试在SQL中运行join命令时出错

时间:2013-09-18 13:37:58

标签: sql

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

谢谢。

3 个答案:

答案 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