I持って、次の表:のSQL Server 2008 R2:パターンマッチング文字列その逆
表:
CREATE TABLE str_matching
(
colstr varchar(200)
);
挿入データ:
INSERT INTO str_matching VALUES('5sXYZA1010B')
INSERT INTO str_matching VALUES('A1010B')
INSERT INTO str_matching VALUES('AMZ103B15K')
INSERT INTO str_matching VALUES('B15K')
INSERT INTO str_matching VALUES('XC101')
INSERT INTO str_matching VALUES('C101')
INSERT INTO str_matching VALUES('502KMD1FZ10009L')
INSERT INTO str_matching VALUES('FZ10009L')
INSERT INTO str_matching VALUES('A9L')
INSERT INTO str_matching VALUES('XZ049L')
INSERT INTO str_matching VALUES('LM101')
INSERT INTO str_matching VALUES('9001')
INSERT INTO str_matching VALUES('9001A')
予想される出力:私だけ表示したいです1つの文字列が最後の文字列と一致した場合は、重複しているとみなしています。
シナリオ:1
例えば:私は2つの文字列
5sXYZA1010B
A1010B
に第一列の末尾に一致している第二の文字列を持っているので、欲しいですそのようなレコードを表示する。
シナリオ:2
例えば:私は2つの文字列
9001
9001A
第二文字列の最初に一致している第一の文字列を持っているので、欲しいですそのようなレコードを表示する。
注::文字列の長さは固定されていませんが、いつでも一致することができます。
期待される結果:
colstr
--------------------
5sXYZA1010B
A1010B
AMZ103B15K
B15K
XC101
C101
502KMD1FZ10009L
FZ10009L
9001
9001A
注:その逆のパターンマッチングをチェックする必要があります。 Martin Smithコードを1として
、私はに変更した:
SELECT DISTINCT CA.colstr
FROM str_matching s1
JOIN str_matching s2
ON s1.colstr <> s2.colstr
AND s2.colstr LIKE '%' + s1.colstr
OR s1.colstr LIKE '%' + s2.colstr
CROSS APPLY (VALUES(s1.colstr),
(s2.colstr)) CA(colstr)
しかし、文字列の特定のセットを取得できません。
あなたは、あなたの変更について確認されています。 – MAK
@MAK。 。 。あなたが求めている質問の実装と思われます。 –