【问题标题】:display some table rows and displays some other rows in sql在 sql 中显示一些表行并显示一些其他行
【发布时间】:2021-12-03 19:27:23
【问题描述】:

我有一张包含以下信息的表格

id status type
100 1 X
101 2 Y
102 3 Y
103 4 X
104 1 Y

我想显示一些客户的信息,除了状态为1的客户和他们的类型X

select c from client c 
where c.status = 1 or c.status = 3 and c.status !=1 and c.type !=x 

例如,在此表中仅显示客户 101 和 102 和 104。

感谢

【问题讨论】:

  • 为什么是 101、102 和 104?您不希望类型 = 'X' 且状态 = 1 的客户。因此应该保留 101、102、103 和 104。
  • 提示:切换到标准 SQL <> 而不是古老的!=。为了避免将来出现问题。
  • 样本数据很好,但您也应该指定预期结果。

标签: java mysql sql spring database


【解决方案1】:

使用 c.status = 1c.type = 'x' 排除客户。假定列不为 nullabe。

select c.* 
from client c 
where c.status != 1 AND c.type != 'x' 

select c.* 
from client c 
where NOT (c.status = 1 OR c.type = 'x')

【讨论】:

  • 认为您需要切换 AND/OR。 (但问题有点不清楚,所以我可能是错的。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
  • 2012-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多