Есть ли способ ссылаться на имя поля с переменной в Firebird - PullRequest
0 голосов
/ 10 октября 2011

Есть ли способ ссылаться на имя поля со значением переменной в Firebird?например, я хочу сделать SQL следующим образом:

Insert into tab1 (1, f1, f2, f3)
    select 1, tab2.f+var_loop, tab2.f+var_loop, tab2.f+var_loop
    from tab2
    where .....

, где "f" - первый инициал имени поля, а "var_loop" - переменная цикла. Спасибо

Ответы [ 2 ]

0 голосов
/ 10 октября 2011

Нет, это не поддерживается.Я уверен, что вы можете достичь чего-то подобного, используя EXECUTE BLOCK , но тогда вы сможете сразу создать правильный оператор SQL на стороне клиента, было бы намного проще ...

0 голосов
/ 10 октября 2011

Чтобы сделать это, вы должны написать код приложения для построения SQL до подготовки запроса.

В SQL имя и количество столбцов должны быть фиксированными во время подготовки запроса.Имена столбцов не могут быть основаны на выражениях, которые не оцениваются до времени выполнения.Насколько я знаю, это верно для стандартного SQL и для каждой марки СУБД.

Также нельзя использовать скобки вокруг списка столбцов в предложении SELECT, как вы делаете.

...