2017-03-07 6 views
0

テキストの文字列で一致するものを見つける方法を教えてください。tsqlテキストの文字列で姓を見つけるにはどうすればいいですか

たとえば、 Col1には「Smith」という姓があります。

Col2のグループ名は "Mr A B Smith and Mrs J Bike"です。

グループ名を検索して「Smith」の一致を見つけるにはどうすればよいですか?

グループ名は、上記の形式でCRMシステムに手動で入力されますので、これを変更することはできません。

あなたがCol2に内のすべてのSmithsを検索したい場合はおかげ

+0

ヒント:これは、適切なソフトウェア(MySQLのは、Oracle、DB2の両方で、データベースの質問にタグを付けると便利です、...)とバージョン'sql-server-2014'です。構文と機能の相違は、しばしば答えに影響します。 – HABO

答えて

0

あなたがCASECHARINDEXの組み合わせが必要になります。

SELECT 
    CASE 
     WHEN CHARINDEX(Col1, Col2, 0) > 0 
      THEN 'Exists' 
     ELSE 'Not Exists' 
    END [Does Col1 Exist in Col2] 
FROM Table 

またはCASEREPLACEの組み合わせ:

SELECT 
    CASE 
     WHEN LEN(COL2) > LEN(REPLACE(COL2, COL1, '')) 
      THEN 'Exists' 
     ELSE 'Not Exists' 
    END [Does Col1 Exist in Col2] 
FROM Table 

か、あなたがのCol1の値が、その後Col2にに存在するだけで結果たい場合:

SELECT 
    Col1 
    , Col2 
FROM Table 
WHERE LEN(COL2) > LEN(REPLACE(COL2, COL1, '')) 
+0

こんにちは、2番目のステートメントの種類は動作しますが、問題は、テキストのいずれかが一致すると「存在する」ということです。たとえば、 "m"という文字だけを入力すると、 "Mr"のために存在します。私が "Z"とタイプするとそれは存在しません。 – user114790

+0

私は理解していない、ステートメントの問題は何ですか?あなたの要求に基づいて正しいです。多分あなたはあなたの質問に投稿していない追加条件/ルールを持っているかもしれません。 –

+0

最後のステートメントが機能します。とてもありがとうございます。 – user114790

0

は、あなたがたサブストリングを検索するには、パーセント記号とLIKEキーワードを使用することができます。

SELECT Col2 
FROM [TABLENAME] 
WHERE Col2 LIKE '%Smith%' 
+0

こんにちは、私は、col1に保持されているデータがcol2の文字列のどの部分にも一致することを検証する必要があるでしょう。 – user114790

関連する問題