首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有用户定义函数的循环/对称值的Sqlite (C )和查询(select)

具有用户定义函数的循环/对称值的Sqlite (C )和查询(select)
EN

Stack Overflow用户
提问于 2014-01-06 14:12:50
回答 1查看 107关注 0票数 0

我在C++中使用Sqlite,并且有两个类似的问题:

( 1)我需要选择4个条目来进行插值。

例如,我的表可能如下所示:

角(双)倍色(双)

代码语言:javascript
复制
  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)另一张桌子是这样的:

速度(双)双色(双)

代码语言:javascript
复制
 0              0.1         0
10              0.5         1
20              0.9         2
30              1.5         3
...             ...         ...

在现实中,由于对称性,颜色(速度)=颜色(-speed),而var(-speed) =myfunc(速度)。我希望进行诸如SELECT * FROM mytable WHERE speed BETWEEN -20 and 10之类的查询,并能够以负速度对“虚拟”行进行一些API操作,并将它们作为常规结果返回。

例如,我希望查询SELECT * FROM mytable WHERE speed BETWEEN -20 and 10的结果如下所示:

速度(双)双色(双)

代码语言:javascript
复制
-20             0.9      myfunc(2)
-10             0.5      myfunc(1)
  0             0.1        0
 10             0.5        1

这有可能吗?

(谢谢你的帮助:)

EN

回答 1

Stack Overflow用户

发布于 2014-01-06 15:24:57

我建议使用一个有两个间隔的查询:

从mytable中选择*,其中( >= MIN(?1,?2)和<= MAX(?1,?2) OR ((MAX(?1,?2)> 360)和( >= 0和<= MAX(?1,?2)%360));

如果?1和?2为正,则此示例工作良好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20951792

复制
相关文章

相似问题

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