我想在某些表列上计算聚合函数 SUM 和 COUNT 。问题是列是动态选择的,因此它们可以是 varchar 类型。在这种情况下,COUNT是可用的,但SUM不是。如何使用SQL处理此问题?我想要像:
IF varcharColumn IS typeof(varchar) THEN -1 ELSE SUM(varcharColumn
)
答案 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
的一些信息