簡體   English   中英

將varchar轉換為int時轉換失敗

[英]Conversion failed when converting the varchar to int

我在SQL中遇到轉換錯誤。 我已經嘗試將Cast和Convert轉換為int,但是失敗了。

SELECT 
    ProdId, ParentCat, ProdFullName, ProdImage 
FROM 
    Product
WHERE
    ProdId IN (SELECT Compared FROM Product WHERE ProdId = 10803)
  • ProdIdint
  • Compared列是varchar

Compared列值是:

32879, 10844, 10747, 81113, 8001, 81469
SELECT 
    ProdId, ParentCat, ProdFullName, ProdImage 
FROM 
    Product
WHERE
    ProdId IN (SELECT convert(int,ltrim(rtrim(Compared))) 
              FROM Product WHERE ProdId = 10803)

進一步了解CAST和CONVERT

在這種情況下,您只需將ProdId轉換為varchar。

WHERE
CAST(ProdId AS varchar(10)) IN (SELECT Compared FROM Product WHERE ProdId = 10803)

在這種情況下,您應該將查詢構建為字符串並執行它DECLARE @query VARCHAR(MAX) SELECT @query = 'SELECT ProdId, ParentCat, ProdFullName, ProdImage FROM Product WHERE ProdId IN (' + Compared + ')' FROM Product WHERE ProdId = 10803 EXEC (@query)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM