到目前为止,我有以下查询为我工作。
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
结果。