我在sql中选择了一个问题。
假设我有一个包含列的表:ID,小时,温度(行数)。
我想选择每行96行,由ID
数字决定。
我的意思是行号96,192,288(+96)等......
你能帮助我并给我正确的sql语句吗?
答案 0 :(得分:0)
如果你确定了一个" Row"通过它ID
,你可以通过找到ID
的模数来做到这一点(模数是"余数"除以两个数后)。如果将数字除以96并且模数为0,那么您将得到96的倍数。
在大多数RDBMS中,函数MOD()
将在这里起作用,尽管函数的名称及其参数可能依赖于RDBMS,因此需要注意:
SELECT *
FROM <table>
WHERE MOD(ID,96) = 0;
答案 1 :(得分:0)
SELECT *
FROM table
WHERE ID % 96 = 0;
编辑: 在几乎所有语言中,%符号是模运算符,当它像%b一样使用时,除以b并返回余数。正如JNevill所说,当%b = 0时,则a是b的干净倍数。
还应该注意,像这样的查询不是SARGable,在大型表格上表现不佳。