2016-03-29 18 views
-4

最初の矢印の後にテキストを取りますが、1秒後に停止するSQLコードはありますか? (該当する場合)。 dbms PostgreSQLの使用。 ' - >' あなたは、区切り文字でいくつかの分割機能を使用することができます大胆データの列から単語/情報を抽出するSQLクエリー

Cat --> Dog 
Park Bench --> Window/Door/House 
Test --> OBJECT 
Train Journey --> Coat --> ha 64,10 cm (19 Woll) 
Elaborate --> All-in-One 
HUH --> Scarf --> Yellow 122 
HUH --> Scarf --> Yellow 123 
HUH --> Scarf --> Yellow 124 
HUH --> Scarf --> Yellow 125 
HUH --> Scarf 
Branches --> Wood/Leaf 
Branches --> Scarf 
Branches --> Car 
Two way --> Drawers --> ha 33,02 cm (13 Woll) 
Ordinary --> Table 
Two way --> Drawers --> ha 49,18 cm (17 Woll) 
Two way --> 5-in-2/Lewisham 
Two way --> Drawers --> ha 33,02 cm (13 Woll) 
Ordinary --> London --> Scarf 
Ordinary --> ThinHouse 
Window/Door/House --> Hotel --> House - Park 
Two way--> London --> Scarf 
Two way--> London 
HUH --> Bowl --> Spoon 123 
HUH --> Hand --> Stage 
Production --> Able --> Now 
Window/Door --> Always --> Now 
Window/Door --> London 
Window/Door --> Longevity --> Sonstige 
Ordinary --> London 
HUH --> HUH Window/Door 
Window/Door --> Longevity --> ha 45,72 cm (18 Woll) 
Ordinary --> London --> Scarf 
+0

を、あなたはリクエストのどのような種類を試してみますか? – darkomen

+0

これらはすべてデータの一部ですか?あなたが抽出したい最初の ' - >'の後ろの言葉はいつもですか? –

+0

はい - >がデータに含まれています。各行はデータ内のセルです。はい、最初の矢印の後の単語(しかし、2番目の矢印で停止)は、常に私が抽出したいものです – PorridgeStack

答えて

0

に情報を抽出

例えば、以下は、私はT-SQLで使用split関数である:

CREATE FUNCTION [dbo].[Split] 
(
    @Text VARCHAR(MAX), 
    @Delimiter VARCHAR(100), 
    @Index INT 
) 
RETURNS VARCHAR(MAX) 
AS BEGIN 
    DECLARE @A TABLE (ID INT IDENTITY, V VARCHAR(MAX)); 
    DECLARE @R VARCHAR(MAX); 
    WITH CTE AS 
    (
    SELECT 0 A, 1 B 
    UNION ALL 
    SELECT B, CONVERT(INT,CHARINDEX(@Delimiter, @Text, B) + LEN(@Delimiter)) 
    FROM CTE 
    WHERE B > A 
    ) 
    INSERT @A(V) 
    SELECT SUBSTRING(@Text,A,CASE WHEN B > LEN(@Delimiter) THEN B-A-LEN(@Delimiter) ELSE LEN(@Text) - A + 1 END) VALUE  
    FROM CTE WHERE A >0 

    SELECT  @R 
    =   V 
    FROM  @A 
    WHERE  ID = @Index + 1 
    RETURN  @R 
END 
GO 

あなたのケースでは、インデックスを指定する必要があります。

SELECT SPLIT(myField,'-->',1) FROM myTable 
+0

dbmsが指定されていない質問には、製品固有の回答が非常にあります。 – jarlh

+0

コメントありがとうございました。 dbmsを含まないことのお詫び。私はdbmsのコードが必要ですPostgreSQL – PorridgeStack

+0

申し訳ありませんが、私はそれがt-sqlだと思いました。 –

関連する問題