我有以下查询为我工作到现在。通过多个分隔符将varchar列拆分为标记(词)并将它们作为记录
with tmp(product_id , Token, product_name) as (
select product_id, cast (LEFT(product_name, CHARINDEX(' ',product_name+' ')-1) as varchar(100)),
STUFF(product_name, 1, CHARINDEX(' ',product_name+' '), '')
from Products
union all
select product_id, cast (LEFT(product_name, CHARINDEX(' ',product_name+' ')-1) as varchar(100)),
STUFF(product_name, 1, CHARINDEX(' ',product_name+' '), '')
from tmp
where product_name > ''
)
select product_id, Token from tmp
这将产品名称按空格分开并提供给我作为记录。
但是现在我需要将产品名称不仅用空格分隔,而且用空格,连字符和逗号分隔。我无法弄清楚如何实现这一点。
任何形式的帮助总是赞赏。
编辑 - 举例
如果产品表包含以下
product_id, product_name
1, JVC-600.BLACK
2, M cb-588
然后,我需要
product_id, token
1, JVC
1, 600
1, BLACK
2, M
2, cb
2, 588
的结果。
你可以张贴一些样品之前运行此数据和要求的输出 – praveen 2013-05-09 06:44:57
@parveen增加了一些我如何使用它的例子。 – Ankit 2013-05-09 06:51:08