首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参数化kdb q脚本

参数化kdb q脚本
EN

Stack Overflow用户
提问于 2018-10-24 02:17:10
回答 4查看 786关注 0票数 2

我正在编写一个kdb/q脚本,它需要提示用户输入,然后将该输入添加到几个预先格式化的查询中。关于如何提示/接受输入和参数化查询的建议?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-10-24 06:36:54

您可以使用read0 0接受用户输入,等待将捕获所有用户类型,直到它们进入enter。然后,输入将作为字符串返回。您可以将其输入到活动的Q会话中,也可以将其封装为如下函数:

代码语言:javascript
复制
q)f:{a:read0 0;show a}
q)f[]
12
"12"

在本例中,我输入了12,它作为字符串"12"返回。

至于参数化查询,这可以通过字符串来完成,但可以说这不是很好的Q。最好将输入转换为另一种类型,并使用函数式或甚至标准选择,例如:

代码语言:javascript
复制
q)tab:([]a:1 2 3 4)
q){input:"J"$read0 0;select from tab where a=input}[]
4
a
-
4

您可以在Kx上阅读更多关于功能形式的信息。

票数 3
EN

Stack Overflow用户

发布于 2018-10-24 06:44:34

您也可以使用.z.x & .Q.opt将输入作为命令行参数传递:

代码语言:javascript
复制
$ q -item cam
q)p:.Q.opt .z.x
q)p`item
item| "cam"

q)select from tab where items=first `$p`item
items sales prices
------------------
cam   0     15
票数 4
EN

Stack Overflow用户

发布于 2018-10-24 06:36:10

签出read0以从控制台读取输入。

代码语言:javascript
复制
q)rl:{1">> "; value "select from tab where items=`",read0 0}
q)rl`
>> cam
items sales prices
------------------
cam   0     15
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52960197

复制
相关文章

相似问题

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