首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL查询-如何不包含某些结果

SQL查询-如何不包含某些结果
EN

Stack Overflow用户
提问于 2012-05-16 13:08:33
回答 4查看 9.5K关注 0票数 2

如果这个问题是在我不能正确地形式化之前被问到的,我道歉。我在一个表中有一个code列,想要查询它,但是用一些特定的代码删除一些元素。假设我想获取代码从4开始的元素,但不包括代码第6位为9 (1121290)的元素。

code列包含最大长度为8个字符的数字字符串。我想取除以411、427和428开头的元素之外的几乎所有以4开头的元素

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-16 13:20:59

是的,你可以这样查询:--

我有6位数编码的列元素。

我正在获取第一个数字是4或第六个数字是9的元素。

我们必须使用%_来获取..

代码语言:javascript
运行
复制
SELECT element  FROM "table" WHERE element LIKE '%4____9%';

试试这个,它会起作用的。

所有以4开头的元素,除了以411,427和428开头的元素:-

代码语言:javascript
运行
复制
 SELECT element  FROM "table" WHERE element LIKE '%4__';

第一个数字是4,第六个数字不是9:我测试了这个,它工作正常,试试这个:-

代码语言:javascript
运行
复制
SELECT element  
FROM "table" 
WHERE element NOT LIKE '%_____9' and element LIKE '%4_____'
票数 1
EN

Stack Overflow用户

发布于 2012-05-16 13:27:26

在where子句中简单地拼写每个条件可能是最简单的方法:

代码语言:javascript
运行
复制
WHERE code like '4____9%' AND code NOT LIKE '411%' AND code NOT LIKE '427%' AND code NOT LIKE '428%'

额外的条件不会对查询的效率造成太大影响;无论如何,它都必须扫描从4开始的每一行。

票数 1
EN

Stack Overflow用户

发布于 2012-05-16 13:18:01

假设您的"CODE“字段是varchar,并且您使用的是SQL Server,则可以使用以下查询

代码语言:javascript
运行
复制
select * from yourTable
where code like '4%'
AND CHARINDEX('9',code)<>6
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10612356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档