1

そのようなSQLステートメントが必要です:

select col(x) where (col1 like '%key%') or (col2 like '%key%') or .... - x はキー (pattern) を含む列です。

より正確には、テキスト列 col1、col2、col3、col4 などを含むテーブルがあります。

今、私はそれらすべての列で特定のパターン(のようなもの)を見つけたいと思っています。ただし、選択の結果として、パターンが見つかった列の内容を取得したいと思います(私の「ステートメント」では、それを col(x) としてマークしました)。

未解決の問題は、同じステートメントの 2 つ以上の列に同じパターンが含まれている場合はどうなるかということです。次に、たとえば、col(x)、col(y) のようなものを取得できますが、必須ではありません。他の合理的な解決策は大歓迎です。

問題は、私が必要とするそのようなステートメントをどのように書くかです?

助けてくれてありがとう。

4

1 に答える 1

1

CASE 式を使用して列を検索できます。

SELECT CASE WHEN col1 LIKE :pattern THEN col1
            WHEN col2 LIKE :pattern THEN col2
            ...
       END AS colx
FROM MyTable
WHERE col1 LIKE :pattern OR col2 LIKE :pattern OR ...
于 2013-11-12T21:15:00.527 に答える