SQL Server 2008 - 拆分 [英] SQL Server 2008 - Split

查看:42
本文介绍了SQL Server 2008 - 拆分的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们如何在列中使用交叉应用和拆分值?

How do we use cross apply and split values in a column?

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

I have a function dbo.split that based on a comma separates the values into separate column

 Id         Name      Value  
1234    A     6767  
1234    A     6767,1111   
5678    A     6767  
5678    A     6767,1111  
9999    A     6767  

请帮助 SQL 查询交叉应用并使用拆分功能

Please help with SQL query to Cross Apply and also use the split function

谢谢

推荐答案

您可以使用 CROSS APPLY 使用以列为参数的拆分函数.

You can use CROSS APPLY to use the split function with a column as a parameter.

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 '%'  

这篇关于SQL Server 2008 - 拆分的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆