2016-08-07 3 views
0

別の列に対応する1つの列の文字列の一部を削除する必要があります。 私はそのためにREPLACE機能を使用することができますが、使用方法はわかりません。SQLite内の別のフィールドを含む文字列の一部を削除します

私のケースでは、ワイナリー列と同じ「名前」列の最初の部分を削除したいと考えています。

例:

Name: Family Wines Vintage Special 
Winery: Family Wines 

私が取得したい:

Name: Vintage Special 
Winery: Family Wines 

可能性のある問題:

  • 名とワイナリーが同じである場合、関数は何もしないする必要があります。
  • 昏睡( ')またはセミコロンで始まる場合名前の文字列をきれいに、可能な場合は
  • を取り除いた後、[名前]フィールドの開始時にスペースを確保していない(;)を除去した後、またはその
ために別のクエリを使用します

そのような何か:

UPDATE usr_wines SET name=REPLACE(name, winery, '') WHERE name LIKE '%' || winery; 

おかげで、

答えて

0

substr() functionを使用し、テキスト値の先頭から文字を削除するには:

UPDATE usr_wines 
SET Name = substr(Name, 2) 
WHERE Name LIKE ',%'; 

同じでダイナミックな文字列で行うことができます。

UPDATE usr_wines 
SET Name = substr(Name, length(Winery) + 1) 
WHERE Name LIKE Winery || '%' 
    AND Name != Winery; 
+0

本当に素晴らしい答えです!どうもありがとう ! –

関連する問題