kdb中函数中的字符串查询

kdb中函数中的字符串查询,kdb,Kdb,查询是我的功能的一部分。我添加了一些,比如从值查询中删除xxx、yyyy和一些操作。我不知道为什么当我不使用值查询时,该函数不起作用。它说它找不到那张桌子。所以我必须在函数中使用值查询,而查询是一个参数。我需要将select from选项卡传递给函数 我的问题是:如果筛选器也是字符串,如何发送 func:{[query] value query}; 整个功能是 func["select from tab where date = max date"] it did not work due

查询是我的功能的一部分。我添加了一些,比如从值查询中删除xxx、yyyy和一些操作。我不知道为什么当我不使用值查询时,该函数不起作用。它说它找不到那张桌子。所以我必须在函数中使用值查询,而查询是一个参数。我需要将select from选项卡传递给函数

我的问题是:如果筛选器也是字符串,如何发送

func:{[query] value query};
整个功能是

func["select from tab where date = max date"]  it did not work due to length error
but func["100#select from tab where date = max date"] it works ?

可以使用反斜杠转义引号

编辑:


若tab是HDB表,那个么这个长度错误可能指向一个列长度问题,这是100避免的。下面返回的是什么

func["select from tab where a like \"abc\""] 

可以使用反斜杠转义引号

编辑:


若tab是HDB表,那个么这个长度错误可能指向一个列长度问题,这是100避免的。下面返回的是什么

func["select from tab where a like \"abc\""] 

我喜欢使用-3!和-1来打印结果。如果您知道从控制台执行查询应该是什么样子,那么在构造字符串之后,使用-1打印字符串。它应该按照控制台执行查询的方式打印查询

q)checkPartition:{[dt] a!{c!{count get x} each ` sv' x,/:c:({x where not x like "*#"} key[x])except `.d}each a:(` sv' d,/:key[d:hsym `$string dt])};
q)check:checkPartition last date
q)(where{1<count distinct value x}each check)#check

我喜欢使用-3!和-1来打印结果。如果您知道从控制台执行查询应该是什么样子,那么在构造字符串之后,使用-1打印字符串。它应该按照控制台执行查询的方式打印查询

q)checkPartition:{[dt] a!{c!{count get x} each ` sv' x,/:c:({x where not x like "*#"} key[x])except `.d}each a:(` sv' d,/:key[d:hsym `$string dt])};
q)check:checkPartition last date
q)(where{1<count distinct value x}each check)#check

注意控制台的尺寸..:QSystemc50 10 q-3!Hello\Hell..注意控制台大小..:QSystemc50 10 q-3!你好\见鬼..很好,成功了!但是你知道为什么当我在函数中进行查询时,它给出了长度错误。如果我没有指定要从查询中获取多少记录,则会出现错误。我的函数没有发现任何错误,如果tab是一个HDB表,那么这个长度错误可能指向一个列长度问题,这是100避免的。下面将代码移动到编辑的应答器中是什么?如果我删除了check,它将返回n次,我也将返回n次,如果我在cols选项卡中设置了一个条件,那么只有eData,它将在另一个线程中运行你给我的函数,如果不只是return选项卡的话。然后,该功能以更好的方式工作。嗨,康纳,对不起,聊天在公司被阻止。func[select from tab]在指定其中日期=最大日期时返回长度错误。但是[select col from tab]返回了一些内容。我稍微改变了一下功能。因此,如果返回表中没有eData列,则不会执行替换该值的函数。不确定是否有eData列中替换值函数的长度错误cuz。我在家的时候可以打开聊天室。谢谢Connornice它成功了!但是你知道为什么当我在函数中进行查询时,它给出了长度错误。如果我没有指定要从查询中获取多少记录,则会出现错误。我的函数没有发现任何错误,如果tab是一个HDB表,那么这个长度错误可能指向一个列长度问题,这是100避免的。下面将代码移动到编辑的应答器中是什么?如果我删除了check,它将返回n次,我也将返回n次,如果我在cols选项卡中设置了一个条件,那么只有eData,它将在另一个线程中运行你给我的函数,如果不只是return选项卡的话。然后,该功能以更好的方式工作。嗨,康纳,对不起,聊天在公司被阻止。func[select from tab]在指定其中日期=最大日期时返回长度错误。但是[select col from tab]返回了一些内容。我稍微改变了一下功能。因此,如果返回表中没有eData列,则不会执行替换该值的函数。不确定是否有eData列中替换值函数的长度错误cuz。我在家的时候可以打开聊天室。谢谢康纳
    q)stst:-3!
    q)"select max age by user from tab where col1 like ",stst"Hello"
    "select max age by user from tab where col1 like \"Hello\""
    q)/then to view how it will be executed, use -1
    q)-1"select max age by user from tab where col1 like ",stst"Hello";
    select max age by user from tab where col1 like "Hello"
    q)/looks good