2013-07-26 3 views
4

J'ai une table construite comme ceci:sélectionner en fonction de la valeur de la colonne de tableau de caractères - KDB

tab: ([]col1:();col2:()) 
`tab insert (`testsym; "testchararr") 

Je veux maintenant sélectionner la ligne où col2 a la valeur "testchararr". J'ai essayé comme ceci:

select from tab where col2 = "test" 

mais cela renvoie toujours l'erreur 'length.

Comment puis-je effectuer une requête en fonction de la valeur d'un tableau char? Merci

Répondre

5

Utilisez "comme" ou un adverbe. par exemple.

q)select from tab where col2 like "testchararr" 
col1 col2 
--------------------- 
testsym "testchararr" 

q)select from tab where col2~\:"testchararr" 
col1 col2 
--------------------- 
testsym "testchararr" 

q)select from tab where col2 like "test" 
col1 col2 
--------- 

q)select from tab where col2~\:"test" 
col1 col2 
--------- 

Je conseille de vérifier la vitesse de chaque méthode. Pour plus d'exemples d'utilisation comme qsql, voir: http://www.timestored.com/b/forums/topic/string-functions-like-search-replace-regex/

1

ont figuré sur celui-ci:

-je utiliser like au lieu de =

à savoir

select from tab where col2 like "test" 
Questions connexes