繁体   English   中英

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

[英]Error when trying to run join command in 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还是很陌生。 任何帮助,将不胜感激 :)

谢谢。

您不能只将数字和字符串加在一起。 您必须首先将它们置于相同的数据类型上。 首先投放到varchar

SELECT cast([NUM] as varchar) + [ITEMNUM] AS LINKCODE
FROM mydatabase

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

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

这会将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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM