성가신 문제가 있습니다. 우리는 kdb + 데이터베이스에 주식 기호 AGN-A를 가지고 있지만이 기호가 기호 목록에 있다면 쿼리하는 것이 거의 불가능한 것처럼 보입니다. 다음 쿼리가 전혀 작동하지 않습니다.KDB에서 마이너스 기호가 포함 된 기호를 처리하는 방법은 무엇입니까?
`$"A-o" in (`$"A-o";`R)
이 문제를 해결하는 방법은 무엇입니까?
성가신 문제가 있습니다. 우리는 kdb + 데이터베이스에 주식 기호 AGN-A를 가지고 있지만이 기호가 기호 목록에 있다면 쿼리하는 것이 거의 불가능한 것처럼 보입니다. 다음 쿼리가 전혀 작동하지 않습니다.KDB에서 마이너스 기호가 포함 된 기호를 처리하는 방법은 무엇입니까?
`$"A-o" in (`$"A-o";`R)
이 문제를 해결하는 방법은 무엇입니까?
캐스팅하기 전에 비교하기 때문에 작동하지 않는 이유가 있습니다.
q)(`$"A-o") in (`$"A-o";`R)
1b
같이에있는 왼쪽 인자 주위에 괄호를 넣어보십시오 :
(`$"A-o") in (`$"A-o";`R)
그래서, 테이블에, 시도 :
t:([] sym:(`$"A-o";`R;`IBM); col2:1 2 3)
select from t where sym = `$"A-o"
초기 sym 캐스트`$는 "Ao"문자열뿐만 아니라 전체 라인에 적용됩니다. q가 왼쪽에 있습니다. 대괄호로 답하십시오.
q)`$"A-o" in (`$"A-o";`R)
'type
[0] <>:0: `$"A-o" in (`$"A-o";`R)
^
q)(`$"A-o") in (`$"A-o";`R)
1b
q)
다른 답변은 괄호를 사용하여 실행 순서를 수정하는 방법을 설명합니다. "-"그러나 같은 문자없이 문자를 처리 할 수없는 변환이 필요하지 않도록, 나쁜 문자를 제거하는 기능 .Q.id
를 사용하여 :
q).Q.id each (`$"A-o";`R)
`Ao`R
는 위의 예를 단순화하기 :
q)`Ao in .Q.id each (`$"A-o";`R)
1b
일반적으로 예, 기호에 문자가 포함되어있을 때 어색 할 수는 있지만 예제에서 수행 한 것처럼 캐스트 된 문자열을 처리하는 것이 좋습니다. – terrylynch