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

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

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

  1. CODE | Description
  2. A -
  3. A -
  4. B -
  5. B -
  6. C stuff
  7. C -

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

  1. CODE | Description
  2. A -
  3. A -
  4. B -
  5. B -
  6. C stuff

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

aiazj4mn

aiazj4mn1#

尝试:

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

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

2fjabf4q

2fjabf4q2#

一种表达方式是 not :

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

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

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

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

pbgvytdp

pbgvytdp3#

  1. select
  2. t1.Code,
  3. t1.Description
  4. from MyTable t1
  5. where t1.code not in (select code from MyTable where Description not like '-')
  6. union All
  7. select * from MyTable
  8. where Description not like '-'
  9. order by code asc

主要:

结果:

相关问题