KDB:如何比较字符串?
我有一个类型为C的列。如何将该值与同一列中的上一个值进行比较?我确实像prev col1一样使用了KDB:如何比较字符串?,kdb,Kdb,我有一个类型为C的列。如何将该值与同一列中的上一个值进行比较?我确实像prev col1一样使用了col1,但它返回了一个更正提示:lengtherror。我还创建了另一列newCol:prev col1,但仍然无法执行比较。我也试过=,但运气不好。我该怎么做? a样本数据: col1 Paris London London New York Singapore Ha Noi 使用以下各项: 搭配: 您可以使用prior关键字吗 q)t col1 ----------- &quo
col1,但它返回了一个更正提示:length
error。我还创建了另一列newCol:prev col1
,但仍然无法执行比较。我也试过=
,但运气不好。我该怎么做?
a样本数据:
col1
Paris
London
London
New York
Singapore
Ha Noi
使用以下各项:
搭配:
您可以使用prior
关键字吗
q)t
col1
-----------
"Paris"
"London"
"London"
"Ney York"
"Singapore"
"Ha Noi"
q)select (~) prior col1 from t
col1
----
0
0
1
0
0
0
当比较字符串时,如果它们的长度相同,它将检查数组中每个槽中的每个字符是否相同,并返回布尔值列表,告诉您字符串在哪里相同。如果字符串是两个不同的长度,您将得到一个长度错误。如果要测试两个字符串是否完全相同,可以使用~
,这将在不考虑字符串长度的情况下工作,并提供一个布尔值,告诉您它们是否相同。您应该使用like'
而不是like
,因为您不是在比较单个值,而是在比较列表
update comparison: col1 like' prev col1 from
([]col1:("Paris";"London";"London";"New York";"Singapore";"Ha Noi"))
虽然这与Matthews和jomahony的答案基本相同,但是difference
关键字可以让阅读/理解变得更容易:
q)select not differ col1 from ([]col1:("Paris";"London";"London";"New York"))
col1
----
0
0
1
0
q)select not differ col1 from ([]col1:("Paris";"London";"London";"New York"))
col1
----
0
0
1
0