我有以下查詢爲我工作到現在。通過多個分隔符將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