sql - 从表中的多个列中搜索特定值
问题描述
我有一个带有示例列的表::
P_ID P1_QUALITY P2_QUALITY P3_QUALITY
1 A C C
2 A+ C C
3 A C C
4 B+ C C
5 A- C C
( ) 中只有一列P1_QUALITY, P2_QUALITY, P3_QUALITY
不包含 ' C
',就像这里一样P1_QUALITY
,下次可能是P3_QUALITY
。我必须得到column name
不包含值'C'的值。我怎样才能做到这一点 ?
解决方案
使用CASE
with NOT LIKE
's 您可以获得值不以 'C' 开头的第一列的名称
(假设也可能有值“C+”或“C-”)
SELECT t.*,
(CASE
WHEN P1_QUALITY NOT LIKE 'C%' THEN 'P1_QUALITY'
WHEN P2_QUALITY NOT LIKE 'C%' THEN 'P2_QUALITY'
WHEN P3_QUALITY NOT LIKE 'C%' THEN 'P3_QUALITY'
END) AS [NotC]
FROM YourTable t;
如果您希望查询限制那些没有 3 'C' 的人?
只需添加这样的WHERE
子句:
WHERE CONCAT(P1_QUALITY, P2_QUALITY, P3_QUALITY) NOT LIKE 'C%C%C%'
推荐阅读
- c++ - 在 DLL 注入中访问内存会导致内存访问冲突
- mariadb - mariadb char(250)*20 与 text(5000) 的性能对比
- django - Django 应用的 request.user.is_authenticated 的哪一部分是真实的?
- r - 在 for 循环中评估解析表达式的问题:将返回值分配给全局环境中的向量
- mysql - Maria DB 中的触发错误中的 mySQL IF 语句
- slack - 如何让我的 Slack 应用程序忽略群组频道中的消息?
- c# - 连接到 WCF Web 服务不会创建响应类
- javascript - 是否可以进一步缩短代码?
- html - 当窗口变得小于元素时,是否有一种纯 CSS 方法可以使用“调整大小”缩小元素?
- html - 我可以在网页中使用的图像文件名中包含 % 吗?