如果这个问题是在我不能正确地形式化之前被问到的,我道歉。我在一个表中有一个code列,想要查询它,但是用一些特定的代码删除一些元素。假设我想获取代码从4开始的元素,但不包括代码第6位为9 (1121290)的元素。
code列包含最大长度为8个字符的数字字符串。我想取除以411、427和428开头的元素之外的几乎所有以4开头的元素
发布于 2012-05-16 13:20:59
是的,你可以这样查询:--
我有6位数编码的列元素。
我正在获取第一个数字是4或第六个数字是9的元素。
我们必须使用%
和_
来获取..
SELECT element FROM "table" WHERE element LIKE '%4____9%';
试试这个,它会起作用的。
所有以4开头的元素,除了以411,427和428开头的元素:-
SELECT element FROM "table" WHERE element LIKE '%4__';
第一个数字是4,第六个数字不是9:我测试了这个,它工作正常,试试这个:-
SELECT element
FROM "table"
WHERE element NOT LIKE '%_____9' and element LIKE '%4_____'
发布于 2012-05-16 13:27:26
在where子句中简单地拼写每个条件可能是最简单的方法:
WHERE code like '4____9%' AND code NOT LIKE '411%' AND code NOT LIKE '427%' AND code NOT LIKE '428%'
额外的条件不会对查询的效率造成太大影响;无论如何,它都必须扫描从4开始的每一行。
发布于 2012-05-16 13:18:01
假设您的"CODE“字段是varchar,并且您使用的是SQL Server,则可以使用以下查询
select * from yourTable
where code like '4%'
AND CHARINDEX('9',code)<>6
https://stackoverflow.com/questions/10612356
复制相似问题