我们如何在列中使用交叉应用和拆分值?
我有一个基于逗号的函数dbo.split将值分隔为单独的列
@H_404_4@Id Name Value 1234 A 6767 1234 A 6767,1111 5678 A 6767 5678 A 6767,1111 9999 A 6767请帮助SQL查询到Cross Apply并使用split函数
谢谢
解决方法
您可以使用CROSS APPLY将split函数与列作为参数一起使用.
@H_404_4@SELECT pd.contentnodeid,pt.name,s.Value
FROM vw_abc pd
INNER JOIN propertytype pt
ON pd.propertytypeid = pt.id
INNER JOIN tab t
ON t.id = pt.tabid
INNER JOIN contenttype ct
ON ct.nodeid = pt.contenttypeid
INNER JOIN propertytype pt1
ON pt1.name = pt.name
INNER JOIN vw_abc pd1
ON pd1.propertytypeid = pt1.id
CROSS APPLY dbo.split(',',pd1.datanvarchar) as s
WHERE t.TEXT LIKE 'ANC'
AND pd1.datanvarchar <> 'NULL'
AND pd1.datanvarchar <> ''
AND pd.datanvarchar LIKE '%'
AND pd1.datanvarchar LIKE '%'