SQL用一个字段排除另一个字段如何做

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL用一个字段排除另一个字段如何做相关的知识,希望对你有一定的参考价值。

表中有A,B两字段,要的结果是排除B字段中等于02的A字段,表名为 table
字段 :
A B
张三 01
张三 02
张三 03
李四 01
李四 03
王二 05
结果
A B
李四 01
李四 03
李四 04
王二 05

select * from 表名 where A not in (select A from 表名 where B=\'02\')追问

不行,按照你给的内容求出的答案是
A B
张三 01
张三 03
李四 01
李四 03
王二 05

追答

你运行了吗?
保证不是这样的

select A from 表名 where B=\'02\' --这个查出来的是张三

select * from 表名 where A not in (\'张三\')
得出来的是除了张三外的结果

追问

因为字段内容写得较少,如果是几万条,not in(\'张三\')会写死掉的

参考技术A

declare  @table table(
A varchar(4),
B varchar(2)
)
insert into @table
select '张三','01' union all
select '张三','02' union all
select '张三','03' union all
select '李四','01' union all
select '李四','03' union all
select '王二','05'

select A,B from @table where B<>'02'

SQL:基于另一个字段值的条件字段输出

【中文标题】SQL:基于另一个字段值的条件字段输出【英文标题】:SQL: Conditional Field output based on another field's value 【发布时间】:2015-02-24 22:50:44 【问题描述】:

我有一个有趣的情况。我的表有一个名为“折扣”的数字字段。它是一个整数。我的表有另一个名为“isPercent”的布尔字段。

我想选择折扣字段,假设值为 50。

如果 isPercent 为 TRUE,我想将其输出为“50%”,否则我想将其输出为 Money“$50”。

我如何“有条件地选择”这个?

【问题讨论】:

【参考方案1】:

您已经存储了布尔值。只需在上面做一个 if 并连接正确的符号:


MySQL

select if(isPercent, concat(discount, '%'), concat('$', discount)) from ...

PostgreSQL

SELECT CASE 
  WHEN isPercent THEN discount || '%'
  ELSE '$' || discount END
FROM ...

【讨论】:

以上是关于SQL用一个字段排除另一个字段如何做的主要内容,如果未能解决你的问题,请参考以下文章

如何使用sql语句使一个列的值变成另一个字段的值

sql 2008 查询排除 某一列的数据

sql 查询排除一个字段的其他字段

如何将 SQL 记录中的一个字段的值更改为另一个表中的值?

SQL如何根据一个字段的某个关键词的前面部分分组查询

SQL Server 2005 如何将一个数据库中的几张表,引入到另一个数据库中。