【发布时间】:2023-03-14 23:56:01
【问题描述】:
我正在使用 Azure SQL 池/突触/SQL DW,并且有一个需要处理的规则层次结构。在每个级别,父级都可以指定是否需要所有 (AND) 或任何 (OR) 子级才能满足规则。层次结构中的每个级别都可以为父级指定不同的条件(因此您可以有一个包含 OR 等的 AND 条件)
在纯 SQL 中,这可以实现为一个循环,该循环从叶级别开始,并通过将层次结构左连接到要评估的数据上来解析每个级别。任何不符合条件的数据都会从数据集中删除。通过计算存在的不同子项数和匹配的子项数来处理 AND 条件。
这会创建大量复杂的 SQL 来维护,并且使用效率较低的循环。我怀疑图形功能在这里可能是一个更好的结构,但看不到任何真正有助于处理的内置功能。同样,hierarchyid 听起来很合适,但我不相信它存在于 Azure Synapse/Pools/DW
【问题讨论】: