toad—当另一列包含sql中的值时,如何过滤掉该列的值

hvvq6cgz  于 2021-08-09  发布在  Java
关注(0)|答案(3)|浏览(351)

如果存在另一列中的值,如何筛选出一列中的值?如果“代码”列中的“描述”列中带有“-”,我将尝试删除该列中的所有c。

CODE |  Description
A      -
A      -
B      -
B      -
C      stuff
C      -

在“code”列中,如果description='-',我想删除值“c”。
最终结果如下表所示,去掉了c&。

CODE |  Description
A      -
A      -
B      -
B      -
C      stuff

注意,description列是一个使用case-when的自定义字段。
在excel中,我只需要创建一个伪条件列,然后过滤掉“c”和“-”。我不知道如何在sql中实现这一点。

aiazj4mn

aiazj4mn1#

尝试:

SELECT CODE, Description 
FROM your_table_name 
WHERE (CODE Not Like 'C' And Description Not Like '-');

此外,我建议保持字段/列名的大小写相同,例如“code”和“description”或“code”和“description”。这是一种更好的做法。

2fjabf4q

2fjabf4q2#

一种表达方式是 not :

where not (code = 'C' and Description = '-')

这似乎很接近你表达的逻辑。
这相当于:

where code <> 'C' or Description <> '-')

请注意,这两种解决方案都假设 code 以及 description 不是 NULL . 也可以修改它们来处理这个问题,但根据问题中的数据,这似乎不是必需的。

pbgvytdp

pbgvytdp3#

select 
    t1.Code,
    t1.Description
    from MyTable t1
    where t1.code not in (select code from MyTable where Description not like '-') 
    union All
    select * from MyTable
    where Description not like '-'
    order by code asc

主要:

结果:

相关问题