2

任意の文字列 (「AABCC」など) があり、[col] がこの文字列と等しいすべての行をプレフィックス付きで取得したいとします。その場合、私は次のようにします:

SELECT * FROM table WHERE [col] LIKE '%AABCC';

私の例では、「EEEAABCC」などの一致が得られます。

今、私は逆のことをしたいです。文字列が [col] に等しい場合に任意のプレフィックスを付けて一致を取得したい:

たとえば、[col] が「BCC」、「ABCC」などの行を取得したいと思います。

どうすればいいですか?

4

4 に答える 4

1
SELECT * FROM NAMES WHERE 
  SUBSTR('AABBCC', LENGTH('AABBCC') - LENGTH(Name) + 1, LENGTH(Name)) = Name;

ノート:

  • 、 または、またはRDBMSSUBSTRがサポートするものに置き換えてください。SUBSTRINGMID

  • 、 または、またはRDBMSLENGTHがサポートするものに置き換えてください。LENSTRLEN

于 2016-09-27T22:26:11.913 に答える
0

[col] の最後の N 文字がターゲット文字列の最後の N 文字と一致するように一致させたい場合は、次のようにします。

SELECT * FROM table 
WHERE [col] like '%AABCC' --match on entire target string
OR [col] like '%ABCC'     --match on last 4 chars of target string
OR [col] like '%BCC'      --match on last 3 chars of target string
OR [col] like '%CC'       --match on last 2 chars of target string
OR [col] like '%C'        --match on last 1 char of target string
;

これは本当にあなたが一致させたいものですか?

于 2016-09-27T22:21:08.087 に答える
0

SELECT * FROM table WHERE 'CCBAA' like concat(reverse([col]), '%')

于 2016-09-27T23:09:54.217 に答える