如何解决如何在 SQL Sever 中获取 CSV 中所有值的 SUM?
我有一个 CSV,我想获取其中所有值的总和,但找不到好的解决方案。
我想尝试像下面这样的 STRING_SPLIT
,但它需要 compatibility level 130,而我的 sql Server 是 120。我无法更改兼容性级别。
DECLARE @csv VARCHAR(MAX) = '1,2,3,4,5';
SELECT SUM(*) FROM STRING_SPLIT(@csv,','); --It should return 15
sql Server 详细信息:
Microsoft sql Server 2019 (RTM-CU9) (KB5000642) - 15.0.4102.2 (X64)
2021 年 1 月 25 日 20:16:12 版权所有 (C) 2019 Microsoft Corporation
Windows Server 2019 Datacenter 10.0 上的开发人员版(64 位)
(内部版本 17763:)(管理程序)
解决方法
功能:
CREATE FUNCTION [dbo].[STRING_SPLIT]
(
@string VARCHAR(MAX),@separator VARCHAR
)
RETURNS @returnList TABLE ([value] INT)
AS
BEGIN
DECLARE @location INT
WHILE (CHARINDEX(@separator,@string,0) > 0)
BEGIN
SET @location = CHARINDEX(@separator,0)
INSERT INTO @returnList
SELECT CAST(RTRIM(LTRIM(SUBSTRING(@string,@location))) AS INT)
SET @string = STUFF(@string,1,@location,'')
END
INSERT INTO @returnList
SELECT CAST(RTRIM(LTRIM(@string)) AS INT)
RETURN
END
使用:
DECLARE @csv VARCHAR(MAX) = '1,2,3,4,5';
SELECT SUM(value) FROM dbo.STRING_SPLIT(@csv,',');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。