使用用户定义的函数对循环/对称值执行Sqlite(C API)和查询(选择)
Sqlite (C API) and query (select) on cyclic/symmetric values with user defined functions
我在C++中使用Sqlite,并且有两个类似的问题:
1) 我需要选择4个条目来进行插值。
例如,我的表格可能是这样的:
角度(双倍)|颜色(双倍)
0 0.1
30 0.5
60 0.9
90 1.5
... ...
300 2.9
330 3.5
如果我想插值对应于95°的值,我将使用60°、90°、120°和150°的条目。要获得这些条目,我的请求将是SELECT color FORM mytable WHERE angle BETWEEN 60 and 150
,没什么大不了的。
现在,如果我想要335°,我需要300°、330°、360°(=0°)和390°(=30°)。然后我的查询将是SELECT color FORM mytable WHERE angle BETWEEN 300 and 330 OR angle BETWEEN 0 and 30
。我不能使用SELECT color FORM mytable WHERE angle BETWEEN 300 and 390
,因为这只会返回2种颜色。
我可以使用C API和用户定义函数在查询中包含某种模意义吗?如果我可以使用用户定义的函数来使用查询[...] BETWEEN 300 and 390
并得到行300、330、0和30,那就太好了。
2) 另一张表是这样的:
速度(双倍)|颜色(双倍)|var(双倍)
0 0.1 0
10 0.5 1
20 0.9 2
30 1.5 3
... ... ...
在现实中,由于对称性,color(speed)=color(-speed),但var(-speer)=myfunc(var(speed))。我希望进行SELECT * FROM mytable WHERE speed BETWEEN -20 and 10
之类的查询,并能够使用API以负速度对"虚拟"行进行一些操作,并将其作为常规结果返回。
例如,我希望查询SELECT * FROM mytable WHERE speed BETWEEN -20 and 10
的结果如下:
速度(双倍)|颜色(双倍)|var(双倍)
-20 0.9 myfunc(2)
-10 0.5 myfunc(1)
0 0.1 0
10 0.5 1
这可能吗?
谢谢你的帮助:)
我建议使用两个间隔的查询:
从mytable WHERE(速度>=MIN(?1,?2)AND speed<=中选择*MAX(?1,?2))或((MAX(?1,2)>360)AND(速度>=0 AND速度<=MAX(?1,3,2)%360));
如果?1和?2例为阳性。
- 如何使用默认参数等选择模板专业化
- 查询SQLite数据库中的日期
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 带内存和隔离功能的SQLite
- 选择要调用的构造函数
- C++选择排序算法中的逻辑错误
- QTreeView幻灯片多选后无法使用单击选择
- 无法获取菜单选择以运行函数.C++
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 在C++中,如何通过几种类型从元组中选择多个元素
- 讨论 - 创建矩阵时的数组与向量的向量 - 什么是最实用的选择
- 对可变参数使用声明.如何选择正确的功能
- Qt SQLite没有查询或参数计数不匹配
- 数数并选择 sqlite 中的前三名
- 选择在 Sqlite 数据库中有效,但插入和更新语句不起作用
- 使用用户定义的函数对循环/对称值执行Sqlite(C API)和查询(选择)
- 如何使用选择语句检索 sqlite 并分配给向量然后分配给字符串
- C++ Sqlite 选择语句并存储为向量
- SQLite:通过100K元素列表选择IN
- SQLite:如何选择一段记录