-2

次の行を含む列があります

"XX - Make a determination from receipt of request within 15 calendar days"
"Make a determination from receipt of request or necessary info within 2 business days"
"YYYYYYY - Make a determination from receipt of request within 72 calendar hours"
"ZZZZZZZZZZZ - Make a determination from receipt of request within 30 calendar days"

および同様のパターンを持つすべてのタイプの異なる組み合わせ

"XXXXXXXXXXXXXXXXXXXXX"  from    "text I want to get" within ZZZZZZZZZZZZZZZZZZZZ

X と Z の長さは変化し、from と within の間のテキストも変化しますが、from と within は常にテキストに存在します。テーブル変数に取得したいテキストを取得するクエリを作成して、同じテーブル内の他の列と比較し、それらが一致するかどうかを確認するにはどうすればよいですか?

値を取得するために、テーブル変数とスカラー変数を配置しています。適切な選択ステートメントが必要です。

4

1 に答える 1

1

これは本当に醜いです。テーブルを修正し、毎回このように解析する必要がある文字列内に異なるデータ ポイントを格納するのをやめます。上司がこれが悪い理由を理解していない場合は、テレビの電源を入れるたびにリモコンを再プログラムするのが好きかどうか尋ねてください。

SET NOCOUNT ON;

DECLARE @t TABLE(c VARCHAR(8000));

INSERT @t VALUES
('XX - Make...ion from receipt of request within 15 calendar days'),
('Make a de...ion from receipt of request or necessary info within 2 business days'),
('YYYYYYY - Make...ion from receipt of request within 72 calendar hours'),
('ZZZZZZZZZZZ - Make...ion from receipt of request within 30 calendar days');

SELECT SUBSTRING(c, 1, CHARINDEX('within', c)-1) FROM
(SELECT c = SUBSTRING(c, CHARINDEX('from', c) + 5, 8000) FROM @t) AS x;

結果:

receipt of request 
receipt of request or necessary info 
receipt of request 
receipt of request 
于 2013-09-12T17:19:10.243 に答える