sql - 统计有多少列符合条件

标签 sql

我有一个表 [Table],其中包含 3 列 [Column1][Column2][Column3].

我的情况是:

WHERE [Column1] LIKE '%q%' OR [Column2] LIKE '%q%' OR [Column3] LIKE '%q%'

它有效,但我想按匹配次数对结果进行排序。

例如

C1 - C2 - C3 
q - q - q
q - a - q
q - a - a

最佳答案

在查询中尝试使用此 ORDER BY 子句:

ORDER BY (CASE WHEN [Column1] LIKE '%q%' THEN 1 ELSE 0 END +
          CASE WHEN [Column2] LIKE '%q%' THEN 1 ELSE 0 END +
          CASE WHEN [Column3] LIKE '%q%' THEN 1 ELSE 0 END) DESC

关于sql - 统计有多少列符合条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8026039/

相关文章:

java - HSQLDB 的最佳 SQL 浏览器?

java - 从带有 'static' 变量的文本框中获取文本

sql - 时间范围- Sql

php - 在 PHP 中使用关联数组构造 UPDATE 语句

sql - 用枢轴连接两个 CTE

sql - Django Admin 多对多内联 View 的 SQL 查询过多

sql - 如何修复这个 PostgreSQL 外键错误?

php - bind_param() 仅对用户输入的值或全部是必要的?

sql - SQL编译错误: syntax error line 5 at position 157 unexpected '<EOF>'

c# - SQL 到 Linq : RIGHT JOIN in LINQ