我写了一个查询,其中我正在获取一个数字,例如"50,000","80,000"。
select Price_amount
from per_prices
由于这些值包含 ',',因此这些值被视为varchar
。要求是将它们打印为带有","的"数字"
这就是"50,000"如何被视为数字而不是varchar
你可以组合Replace
和cast
函数
SELECT CAST(REPLACE(Price_amount, ',', '') AS int) AS Price_Number FROM per_prices
有关更多信息,请访问"替换","铸造"
SQLFiddle
如果一个值中有数字以外的任何东西,它就不是整数,而是包含字符的字符串。 在您的情况下,您有一个包含字符 5
、0
和 ,
的字符串。
如果这是存储在数据库中的内容,并且这是您要显示的内容,那么请继续,您无需将其更改为整数或其他任何内容。但是,如果您在显示这些值之前对其进行一些计算,是的,则需要将它们更改为整数值。 进行计算。将它们更改回 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 小提琴