在varchar操作数上处理SQL SUM运算符

时间:2014-07-17 10:25:11

标签: sql sql-server sum varchar

我想在某些表列上计算聚合函数 SUM COUNT 。问题是列是动态选择的,因此它们可以是 varchar 类型。在这种情况下,COUNT是可用的,但SUM不是。如何使用SQL处理此问题?我想要像:

IF varcharColumn IS typeof(varchar) THEN -1 ELSE SUM(varcharColumn

1 个答案:

答案 0 :(得分:0)

所以你可以这样做:

DECLARE @varCharColumn VARCHAR(MAX) = (SELECT TOP 1 varcharColumn FROM SomeTable)

IF (ISNUMERIC(@varCharColumn) = 1 )
BEGIN
    SELECT COUNT(varcharColumn) AS CountNumber, SUM(varcharColumn) AS SumNumber
    FROM SomeTable
END
ELSE 
BEGIN 
    SELECT COUNT(varcharColumn) AS CountNumber, -1 AS SumNumber
    FROM SomeTable
END

以下是ISNUMERIC

的一些信息