我已经写了一个查询,其中我提取的数字是'50,000','80,000'等数字。varchar到SQL中的数字
select Price_amount
from per_prices
由于这些值包含“”这些都被认为是varchar
.Requirement是打印这些与‘数字’“”
即如何'50,000' 被认为是数而不是varchar
我已经写了一个查询,其中我提取的数字是'50,000','80,000'等数字。varchar到SQL中的数字
select Price_amount
from per_prices
由于这些值包含“”这些都被认为是varchar
.Requirement是打印这些与‘数字’“”
即如何'50,000' 被认为是数而不是varchar
如果一个值比它的数字其它任何东西,它不是一个整数,它包含字符串中的字符。在你的情况下,你有一个字符串包含字符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
也许我们应该向OP建议他在其数据库模式中更改数据类型?如果所有数据类型都将是Int或Money,那么他应该相应地反映他的数据库。思考? –
@MarkLaREZZA你不可能就在那里。您将要进行计算的任何数据都需要使用Int/numeric/decimal/money数据类型。由于这是价格列,因此它必须位于Decimal或Money数据类型中。 –
这是SQL Server或Oracle? –
定义“Concidered”?如果你打印它们 - 有什么区别?你在计算中使用它们吗? –
它们不被视为varchar它们是varchar值。如果它是一个整数值,它不会有任何其他数字。 –