Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在SQL中连接表时将数据int转换为字符串?_Sql Server_Casting_Ssms - Fatal编程技术网

Sql server 如何在SQL中连接表时将数据int转换为字符串?

Sql server 如何在SQL中连接表时将数据int转换为字符串?,sql-server,casting,ssms,Sql Server,Casting,Ssms,此查询抛出以下错误 将varchar值“DE15DRM.LPX”转换为数据类型int时,转换失败 我应该在哪里使用CAST功能?添加WHERE子句并在后面使用它 提前谢谢 根据您提供的内容(查询、错误消息),有一列INT,您尝试将其与VARCHAR(字符串)进行比较,查看您的代码 SELECT * FROM Items I INNER JOIN Stocks S ON CAST(I.ItemCode AS varchar(25)) = S.ItemCode S.ItemCode是INT列,I

此查询抛出以下错误

将varchar值“DE15DRM.LPX”转换为数据类型int时,转换失败

我应该在哪里使用
CAST
功能?添加
WHERE
子句并在后面使用它


提前谢谢

根据您提供的内容(查询、错误消息),有一列
INT
,您尝试将其与
VARCHAR
(字符串)进行比较,查看您的代码

SELECT * 
FROM Items I
INNER JOIN Stocks S ON CAST(I.ItemCode AS varchar(25)) = S.ItemCode
S.ItemCode
INT
列,
I.ItemCode
列已经是
VARCHAR
,您再次将其强制转换为
VARCHAR
,因为它具有字符串值
'DE15DRM.LPX'

因此,您可以通过将
INT
列强制转换为
VARCHAR

SELECT * 
FROM Items I
INNER JOIN Stocks S ON CAST(I.ItemCode AS varchar(25)) = S.ItemCode


您的主要问题不在
CAST()
函数或查询中,而是在数据建模中(
ItemCode
在两个表中应该是相同的数据类型)。

根据您提供的内容(查询、错误消息),有一列
INT
,您尝试将其与
VARCHAR
(字符串)进行比较,查看您的代码

SELECT * 
FROM Items I
INNER JOIN Stocks S ON CAST(I.ItemCode AS varchar(25)) = S.ItemCode
S.ItemCode
INT
列,
I.ItemCode
列已经是
VARCHAR
,您再次将其强制转换为
VARCHAR
,因为它具有字符串值
'DE15DRM.LPX'

因此,您可以通过将
INT
列强制转换为
VARCHAR

SELECT * 
FROM Items I
INNER JOIN Stocks S ON CAST(I.ItemCode AS varchar(25)) = S.ItemCode


您的主要问题不在
CAST()
函数或查询中,而是在数据建模中(
ItemCode
在两个表中应该是相同的数据类型)。

您可能需要将Int列强制转换为VarChar。但是如果你想加入它们,为什么它们有不同的数据类型呢?这是一个已损坏的数据模型.我们不能以某种方式将数据类型int转换为string吗@dnoethWhat是这两个ItemCode列的确切数据类型?@learningsql对您也不起作用,因为您有一个类似于
'DE15DRM.LPX'
的字符串,而不像
'123'
@sami:将数值列转换为字符串将避免此错误(当然它仍然是一个错误的数据模型)。您可能需要将Int列转换为VarChar。但是如果你想加入它们,为什么它们有不同的数据类型呢?这是一个已损坏的数据模型.我们不能以某种方式将数据类型int转换为string吗@dnoethWhat是这两个ItemCode列的确切数据类型?@learningsql不适合您,因为您有一个类似于
'DE15DRM.LPX'
的字符串,而不像
'123'
@sami:将数字列转换为字符串将避免此错误(当然它仍然是一个错误的数据模型)