У меня есть таблица с одним столбцом строк, я хочу создать новый столбец со строкой типа и `перед каждым элементом строки. Как я могу это сделать? пример:
Старая версия:
a
b
c
Новое:
"\`a"
"\`b"
"\`c"
У меня есть таблица с одним столбцом строк, я хочу создать новый столбец со строкой типа и `перед каждым элементом строки. Как я могу это сделать? пример:
Старая версия:
a
b
c
Новое:
"\`a"
"\`b"
"\`c"
Другое решение (быстрее в этом сценарии):
q)update b:flip ("`";a) from tab
a b
------
a "`a"
b "`b"
c "`c"
В качестве примера возьмем следующую таблицу:
q)show tab:([]a:("a";"b";"c"))
a
-
a
b
c
Чтобы получить новый столбец с обратным апострофом впереди, вам нужно добавить "`"
к каждой строке:
q)update b:("`",'a) from tab
a b
------
a "`a"
b "`b"
c "`c"
Если столбец состоит из символов, его нужно сначала преобразовать в строку:
q)tab2:([]a:`a`b`c)
q)update b:("`",'string a) from tab2
a b
------
a "`a"
b "`b"
c "`c"
Иногда люди, более знакомые с SQL, чем с q, задают вопросы в терминах таблиц, когда им нужно только обрабатывать векторы; и создайте новые столбцы, где все, что нужно, - это переменная или значение, передаваемое в качестве аргумента.
q)"`",'tab[`a]
"`a"
"`b"
"`c"
Конечно, столбец a
в tab
не что иное, как вектор "abc"
, поэтому
q)"`",'"abc"
"`a"
"`b"
"`c"
может быть все, что вам нужно.
Видеть:
Другой способ: обновить ("` ", /: a) из вкладки