2016-11-18 4 views
1

У меня есть таблица kdb с именем столбца type и вы хотите выбрать данные по типу дачи. Это как:kdb/q, зарезервированное слово как имя столбца

select from table where type=giving_type 

он выдает ошибку: 'type, потому что тип является зарезервированным словом в д.

Тогда как это сделать?

+2

функционального выбора или поиска с помощью словаря синтаксис ('таблицы [\' giving_type] ') ваш единственный выбор. Лучше избегать использования ключевых слов в качестве имен столбцов, действительно –

+0

Хотя его технически возможно сделать это (решения, приведенные выше и ниже), поведение не определено. Другие встроенные функции могут выйти из строя. Его настоятельно рекомендуется выбрать другое имя столбца. – user2242865

+1

Кстати. Q.id исправит эти имена столбцов для вас http://code.kx.com/wiki/DotQ/DotQDotid – Chromozorz

ответ

2

вы могли бы использовать функциональный выбор:

?[`table;enlist (=;enlist `giving_type;`type);0b;()] 
0

Как правило, вы должны избегать использования KDB зарезервированных слов, таких как «типа» в качестве имени столбца.

В этом конкретном случае, когда таблица имеет «тип» как имя столбца, выбор функции - это решение.

Вы можете найти функциональную форму запроса на выборку с помощью функции синтаксического анализа:

parse "select from table where type=giving_type"

Смежные вопросы