SQL Server 2008-拆分

SQL Server 2008-拆分,sql,sql-server-2008,split,Sql,Sql Server 2008,Split,如何在列中使用交叉应用和拆分值 我有一个函数dbo.split,它基于逗号将值分隔为单独的列 Id Name Value 1234 A 6767 1234 A 6767,1111 5678 A 6767 5678 A 6767,1111 9999 A 6767 请帮助SQL查询交叉应用,并使用拆分功能 谢谢您可以使用交叉应用使用带有列作为参数的拆分函数 SELECT pd

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

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

 Id         Name      Value  
1234    A     6767  
1234    A     6767,1111   
5678    A     6767  
5678    A     6767,1111  
9999    A     6767  
请帮助SQL查询交叉应用,并使用拆分功能


谢谢

您可以使用
交叉应用
使用带有列作为参数的拆分函数

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 '%'  
选择pd.contentnodeid,
品名,
s、 价值观
来自大众汽车abc pd
内部联接属性类型pt
在pd.propertytypeid=pt.id上
内连接选项卡t
在t.id=pt.tabid上
内部连接内容类型ct
在ct.nodeid=pt.contenttypeid上
内部联接属性类型pt1
在pt1.name=pt.name上
内部连接vw_abc pd1
在pd1.propertytypeid=pt1.id上
交叉应用dbo.split(',',pd1.datanvarchar)作为s
其中t.TEXT类似于“ANC”
和pd1.datanvarchar'NULL'
和pd1.datanvarchar“
和类似“%”的pd.datanvarchar
和pd1.datanvarchar类似“%”

我认为,您需要告诉我们预期结果是什么。为了让我们能够回答您的问题,您需要添加更多信息。现在,除了猜测之外,没有足够的细节供任何人做更多的事情:)看起来OP故意破坏了他/她自己的问题。。。我投票决定结束。一如既往地感谢米凯尔…将回复2740 A 6767 2740 A 67672801 2788 A 6767 2788 A 67672801 2790 A 6767 2790 A 67672801 2800 A 6767 2800 A 6767 2800 A 6767672801 3215 A 6767 3215 A 6767672801-这是我的输出getting@user-移除
拆分部分
并确保获得所需的行第一。顺便说一句,我想我“意外地”从您的查询中删除了
distinct
。是的,我得到了所需的行…即使对交叉应用行进行注释…我仍然得到相同的记录,我想将67672801拆分为两个单独的行。不..谢谢您的提示…得到了结果