SQL Server 2008 – 拆分

前端之家收集整理的这篇文章主要介绍了SQL Server 2008 – 拆分前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们如何在列中使用交叉应用和拆分值?

我有一个基于逗号的函数dbo.split将值分隔为单独的列

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函数与列作为参数一起使用.
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 '%'
原文链接:https://www.f2er.com/mssql/83686.html

猜你在找的MsSQL相关文章