SQL查询忽略"而不是"

时间:2017-05-25 02:28:30

标签: sql sql-server

我有一个数据源,如下面的

enter image description here

如果我运行以下sql查询,它将删除所有记录" Seg Type" MOD并忽略给定的Fnn范围。

select * from NpsoQueue
where SegmentType not in ('MOD')
and Fnn not between 0888452158 and 0888452158

我希望查询考虑这两个条件。因此,如果我运行查询,它应该只删除第一条记录

1 个答案:

答案 0 :(得分:3)

where子句中的逻辑不正确

使用

select * from NpsoQueue
where NOT (
    SegmentType = 'MOD'
    and Fnn between '0888452158' and '0888452158'
    )

此外,带前导零的数字是字符串文字,因此您需要在其周围放置单引号以保留前导零并停止隐式转换发生

如@TriV所述,您也可以使用OR。这些是基本的布尔逻辑概念,即与SQL Server或数据库无关