求一句sql语句:大于或者小于某个值,但只取紧挨着的6项。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一句sql语句:大于或者小于某个值,但只取紧挨着的6项。相关的知识,希望对你有一定的参考价值。

例如一个表table中rowid为1、2、3、4、5、6、7、8、9。。。。。。。
我要取rowid小于9,并且只取6个不包括9,
即结果应该为:3、4、5、6、7、8
求教sql语句怎么写?
谢谢

参考技术A sql server可以这么写
select top 6 rowid from table where rowid<9 order by rowid desc

oracle
select rowid from table where rowid < 9 and rownum < 6 order by rowid desc追问

好像没有查到啊,,,
我用的是sqlite数据库,手机上的。
还有 rownum是什么东东啊?
谢谢

追答

手机上的没用过,rownum是oracle中的查出来的数据中默认的行数

参考技术B SQL server:
select top 6 rowid
from tab
where rowid < 9
order by rowid desc

DB2
select rowid from tab where rowid < 9 order by rowid desc
fetch first 6 rows only

Oracle:

select rowid
from (SELECT rowid from tab where rowid < 9 order by rowid desc) t
where rownum <= 6追问

我用的是sqlite数据库,手机上的。
还有 rownum是什么东东啊?还有 by rowid desc) t 那个t 是什么意思?
谢谢

追答

sqllite不知道怎么取前几行 哦

本回答被提问者采纳
参考技术C SELECT ROWID
FROM (SELECT ROWID FROM tab WHERE ROWID < 9 ORDER BY ROWID DESC) t
WHERE ROWNUM <= 6

SQL 大于 & 小于语句不返回正确的结果

【中文标题】SQL 大于 & 小于语句不返回正确的结果【英文标题】:SQL greater than & less than statements don't return correct results 【发布时间】:2015-07-20 18:42:56 【问题描述】:

我正在运行查询,并且在使用 > 和

select distinct v1.name, v1.[user], t1.displayversion from vComputer v1
inner join Inv_AddRemoveProgram t1 on v1.Guid = t1._ResourceGuid
where t1.DisplayName like 'Symantec Enterprise Vault%' and t1.DisplayVersion < '9.0.13509'

结果:

name            user          displayversion
ATVIEL-PB0225L4 bunger          10.0.17573
ATVIEL-PB0225LH fmotedayen      10.0.17573
ATVIEL-PB036MTR skoeroezsi      10.0.17573
ATVIEL-PB036MTS criesenhuber    10.0.17573
ATVIEL-PC00768L skaehler        10.0.17573

我该如何纠正这个问题?

【问题讨论】:

How to compare software versions using SQL Server? 的可能重复项 作为一个快速的 hack,您可能只需去掉最右边的 5 个字符并比较内部版本号即可。 虽然我标记为重复的问题并不完全匹配,但该问题的答案应该对您有所帮助。 【参考方案1】:

问题是您正在比较字符串,然后将按字母顺序进行。你基本上有两个选择:

    将版本号拆分为多个部分,以便您可以将每个部分转换为数字,并按顺序排列 3 个字段(或版本中的最大部分数)

    以前导零存储版本号,以便字母顺序与数字顺序相同。

【讨论】:

感谢您的回复。您能否提供一个建议查询的示例以获得我正在寻找的结果? @user3009669 如果版本有最大值。 4部分,可以使用parsenamemsdn.microsoft.com/en-us/library/ms188006.aspx

以上是关于求一句sql语句:大于或者小于某个值,但只取紧挨着的6项。的主要内容,如果未能解决你的问题,请参考以下文章

请问在非参数统计中,如果原假设取等号,为啥备择假设可以只取大于号,或者只取小于号?当然不等号这种

sql 语句:一个字段,连续几天值大于0,获得天数 怎么解决的?请教

求一条关于字段名称取值的SQL语句?

python中如何快速判断一个值是否大于小于等于某个值?

SQL的where语句

sql语句查询表中一个字段的值小于另一个字段的值怎么写?