2017-06-09 10 views
-1

複数の特殊文字を含む文字列を分離する際に問題が少しあります。特定の文字の前後に文字列の一部を削除するにはどうすればよいですか

enter image description here

私は色を分離し、特殊文字のいずれかを持っていないことを望む、私はCHARINDEXで遊んでてきたが、それはうまく動作しません。

例えば:それはでライン3に当たったときなど

SELECT [Color combo] 
    ,left([Color combo], CHARINDEX('.' , replace([Color combo]) - 1) AS [Primary] 

FROM [test].[dbo].[Palate] 

このエラーを「/」 複数の特殊文字をフィルタリングする方法はありますか?

+0

したいですか? – Rahul

+0

最終結果としてあなたが探しているものを提供してください。 – SFrejofsky

+0

何をしようとしていますか?期待される出力を表示してください – Sami

答えて

0

私は理解していれば、それは、あなたの質問に答える必要があります:あなたは、特殊文字を削除

declare @T table (Id INT , Color_combo varchar(500)); 
insert into @t values (1,'Pink.Blue') , (2,'Orange.White') , (3,'Yellow.Orange') , (4,'Red/Green') , (5,':Green.Purple\'); 

SELECT 
     Id, 
     Color_combo, 
     LEFT(Color_combo, CASE WHEN CHARINDEX('.', Color_combo, 0) > 0 
           THEN CHARINDEX('.', Color_combo, 0) - 1 
           ELSE 
           CHARINDEX('/', Color_combo, 0) - 1 
          END) AS [Primary], 
     RIGHT(Color_combo, LEN(color_combo) - (CASE WHEN CHARINDEX('.', Color_combo, 0) > 0 
           THEN CHARINDEX('.', Color_combo, 0) 
           ELSE 
           CHARINDEX('/', Color_combo, 0) 
          END)) AS [Secondary] 
FROM @T; 

Demo

関連する問題