我有一个结构像的表
name properties
x thing1, thing2, thing3
y otherthing1, otherthing2, otherthing3
我想将其映射到一对多的关系,例如
name properties
x thing1
x thing2
x thing3
我有以下解决方案,但遇到了 SQL Server 中的 Maxrecursion 选项
;with tmp(brandName, drugList, genericName) as (
select brandName, LEFT(genericName, CHARINDEX(',',genericName+',')-1),
STUFF(genericName, 1, CHARINDEX(',',genericName+','), '')
from eeeee
where LEN(genericName) - LEN(replace(genericName,',','')) < 100
union all
select brandName, LEFT(genericName, CHARINDEX(',',genericName+',')-1),
STUFF(genericName, 1, CHARINDEX(',',genericName+','), '')
from tmp
where genericName > ''
)
select brandName, drugList
from tmp
order by brandName
where 子句是让我们运行这个查询的原因,因为多值列中有一些行在列表中有超过 100 个项目。有什么方法可以偷偷摸摸并覆盖 SQL Server 的 100 最大递归限制?还是最好继续将具有超过 100 个值的列分成两部分,然后进行递归?