【发布时间】:2021-03-19 13:58:20
【问题描述】:
我有一个 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:)(管理程序)
【问题讨论】:
-
但是您可以轻松轻松地搜索在以前版本中工作的字符串拆分函数。
-
@Larnu 我们都知道有时您会因为管理决策、时间限制或其他因素而陷入糟糕的设计。如果我试图“按应有的方式”构建一切,我将永远无法完成任何事情。
-
我不想开始讨论@Larnu 单词的含义(尤其是在人们对语言的微妙之处有不同看法的跨国平台上)。如果 OP 说他们不能/不会实施 proper (tm) 解决方案,因为它会影响太多组件,那么可以安全地假设它是“can't i>”不是“我不想”。
-
USE master;你的主数据库应该在 150 级 -
性能将是相同的,只需确保您使用 DB 名称
db.schema.table限定所有表、视图和函数名称。之后可以切换回来,没问题。 AFAIK 你可以在交易中做到这一点。
标签: sql-server sql-server-2019