1

我需要这样的sql语句:

select col(x) where (col1 like '%key%') or (col2 like '%key%') or .... - x 是包含键(模式)的列。

更准确地说,我有一个包含文本列 col1、col2、col3、col4 等的表格。

现在我想在所有这些列中找到一个给定的模式(比如)。但是,作为选择的结果,我想获取已找到模式的列内容(在我的“声明”中,我将其标记为 col(x)。

悬而未决的问题是,如果同一语句的两列或多列包含相同的模式怎么办。然后,例如,我可以得到 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 回答