Varchar to Number in sql



我写了一个查询,其中我正在获取一个数字,例如"50,000","80,000"。

select Price_amount
from per_prices
由于这些值

包含 ',',因此这些值被视为varchar 。要求是将它们打印为带有","的"数字"

这就是"50,000"如何被视为数字而不是varchar

你可以组合Replacecast函数

SELECT CAST(REPLACE(Price_amount, ',', '') AS int) AS Price_Number FROM per_prices

有关更多信息,请访问"替换","铸造"

SQLFiddle

如果一个值中有数字以外的任何东西,它就不是整数,而是包含字符的字符串。 在您的情况下,您有一个包含字符 50, 的字符串。

如果这是存储在数据库中的内容,并且这是您要显示的内容,那么请继续,您无需将其更改为整数或其他任何内容。但是,如果您在显示这些值之前对其进行一些计算,是的,则需要将它们更改为整数值。 进行计算。将它们更改回 varchar 数据类型以显示数千到数十万之间的,并显示/选择它们。

DECLARE @TABLE TABLE (ID INT, VALUE VARCHAR(100))
INSERT INTO @TABLE VALUES
(1, '100,000'),(2, '200,000'),(3, '300,000'),(4, '400,000'),
(1, '100,000'),(2, '200,000'),(3, '300,000'),(4, '400,000')
SELECT ID, SUM(
               CAST(
                    REPLACE(VALUE, ',','')  --<-- Replace , with empty string
                    AS INT)                 --<-- Cast as INT
             )   AS Total                  --<-- Now SUM up Integer values
FROM @TABLE 
GROUP BY ID

SQL 小提琴

最新更新