2017-06-25 56 views
0

私はPostgreSQLを初めて使用しており、テーブル内の特定の列をクリーンアップするクエリを作成しようとしています。 「クリーンアップ」とは、特定の記号の前後にあるすべての文字を削除することです。Postgresql、文字列内の文字を削除する

「Adwords」という表の中に「Campaign」という1つの列があります。この列は、DE-SRC-Brandのすべての行にこの文字列/構造体があります。私がこの欄に残しておきたいのは、ブランドが現在ある場所だけです。私はこれまで簡単に検索を行い、検索基準として "* - "を置き換えることで、これを手動でExcelで実行しました。

この公式はどのようにPostgreSQLに変換されますか?特定の指定された記号の前の文字を削除したい場合、それはどのように変更されますか?私がまだこのプログラムに慣れていないので、何か不明な点がある場合は教えてください。

+1

編集をし、サンプルデータを提供し、希望:

select substring(campaign from '%-%-#"%#"' for '#') as brand from adwords; 

あなたはupdateにこれを組み込むことができます結果。説明はかなり抽象的です。 –

+0

ようこそStackOverflowへ! [良いSQLの質問方法](https://meta.stackoverflow.com/a/271056/1920232)を読んで、それに基づいてサンプルデータと正確な結果を提供してください。 – peterm

答えて

0

あなたがブランドを抽出したい場合は、パターンでsubstring()を使用することができますが:あなたの質問

update adwords 
    set campaign = substring(campaign from '%-%-#"%#"' for '#') 
    where campaign like '%-%-%'; 
+0

こんにちは、それは完璧に働いた。しかし、私は完全にそれが正確に何をしたかはわかりません。特定の記号に続いて文字を削除したい場合はどうすればよいですか?例として、ブランド{e}を持っていて、 "{"で始まるマッチタイプのすべての出現を排除しようとしていました。 –

関連する問題