如果存在另一列中的值,如何过滤出一列中的值?我尝试删除“代码”列中的所有C(如果在“描述”列中带有“-”)。
CODE | Description
A -
A -
B -
B -
C stuff
C -
如果“说明”为“-”,我想在“代码”列中删除值“ C”。
最终结果类似于删除了C&-的下表。
CODE | Description
A -
A -
B -
B -
C stuff
值得注意的是,“描述”列是使用CASE WHEN的自定义字段。
在excel中,我只创建一个虚拟条件列,然后过滤掉'C'&'-'。我不确定如何在SQL中执行此操作。
答案 0 :(得分:1)
尝试:
SELECT CODE, Description
FROM your_table_name
WHERE (CODE Not Like 'C' And Description Not Like '-');
此外,我建议保留相同情况的字段/列名称,例如“代码”和“描述”或“代码”和DESCRIPTION。这是更好的做法。
答案 1 :(得分:1)
一种表达这种方式的方法是使用not
:
where not (code = 'C' and Description = '-')
这似乎与您所表达的逻辑非常接近。
这等效于:
where code <> 'C' or Description <> '-')
请注意,这两个解决方案均假设code
和description
不是NULL
。也可以对其进行修改以处理该问题,但是根据问题中的数据,这似乎不是必需的。
答案 2 :(得分:1)