如何添加以逗号分隔的所有值,以sql分隔

  • 本文关键字:分隔 sql 何添加 添加 sql
  • 更新时间 :
  • 英文 :


如何获取表中一列的值的总和。现在,如果我在下面使用查询写入,我想获得 8 和 0 的总和。

SELECT SUM(Items) FROM dbo.CustomSplit(@AssigneeProgress,',')

这给出了一个错误

操作数数据类型 varchar 对于 sum 运算符无效。

我的代码是:

DECLARE @AssigneeProgress AS VARCHAR(100)
SELECT 
    @AssigneeProgress = STUFF((SELECT ',' + CAST(ISNULL((((TblAssignments.PlannedDuration  * 100) / 300) * TblAssignments.Progress) / 100,0) AS VARCHAR(100)) 
                               FROM TblTasks,TblAssignments 
                               WHERE TblTasks.TaskId = TblAssignments.AssignmentEntityId 
                                 AND TblAssignments.AssignmentEntity = 'Task' 
                                 AND AssignmentStatus NOT IN ('Deleted','Cancelled') 
                                 AND TblTasks.TaskId = 63 FOR XML PATH('')), 1, 1,'')
SELECT * FROM dbo.CustomSplit(@AssigneeProgress,',')

此查询在表格中为我提供了结果,例如

Items
8
0

您的方法 CustomSplit 是否返回具有 varchar 类型的列的表?如果是,您可以转换列:

SELECT SUM(cast(Items as int)) FROM dbo.CustomSplit(@AssigneeProgress,',')

在求和之前,尝试将从拆分函数返回的Items转换为INT类型:

SELECT 
    SUM(CAST(Items AS INT)) 
FROM 
    dbo.CustomSplit(@AssigneeProgress,',')

CustomSplit函数很可能返回varchar(x)项。

最新更新