0

そのような(のような)データを含むテキスト列「mytext」があります:

[first] これは最初の部分です [second] これは 2 番目の部分です
[first] これは最初の部分です [second] 異なる場合とない場合があります
[first] これは最初の部分です [second] レコードからレコードへ
[first] 他のレコード[ second] And other text
[first] Other record[second] for other record
[first] そして最後に three record[second] ここはどうでもいい
[first] Fourth record
[first] Fourth record[second] Here misses second

そして、列にある文字列の一部で SELECT DISTINCT を使用してテーブルをクエリする必要があります。
この部分は、文字列の先頭から始まり、文字列の末尾または文字 '[' が現れる場所で終わります。だから私は結果を得ることができます:

[最初] これは最初の部分です
[最初] その他のレコード
[最初] そして最後に 3 番目のレコード
[最初] 4 番目のレコード

クエリで少し文字列操作を行う必要があると思いますが、間違っているかもしれません。

表示されたデータからこの結果を得る方法と、.NET プログラムからのクエリでこれを行うことは可能ですか?

4

3 に答える 3

1

正規表現を使用する

postgres=# select substring('[first] This is first part[second] This is second part' from '(.*)\[second\]');
         substring          
----------------------------
 [first] This is first part
(1 row)

関連するpostgresqlドキュメント

または RE なし

CREATE OR REPLACE FUNCTION public.left_limit(text, text)
RETURNS text
LANGUAGE sql
AS $function$
SELECT left($1, strpos($1, $2) - 1)
$function$

postgres=# select left_limit('[first] This is first part[second] This is second part','[second]');
         left_limit         
----------------------------
 [first] This is first part
(1 row)
于 2013-03-12T07:44:29.780 に答える
0

charindex で部分文字列を使用できます。

テーブルから個別の部分文字列(mytext, 1, charindex('[', mytext)) txtを選択します

ND

于 2013-03-12T07:38:32.827 に答える