有没有办法在Firebird中引用带有变量值的字段名称? 比如我想拍这样的SQL:有没有办法在Firebird中引用带有变量的字段名称
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”的第一个字母是一个循环变量 感谢
有没有办法在Firebird中引用带有变量值的字段名称? 比如我想拍这样的SQL:有没有办法在Firebird中引用带有变量的字段名称
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”的第一个字母是一个循环变量 感谢
不,这不支持。我试图使用EXECUTE BLOCK来实现类似的效果,但是您可以立即在客户端上构建正确的SQL语句,这样会更容易...
要做到这一点,你必须编写应用程序代码以在准备查询之前构建SQL。
在SQL中,在准备查询时,必须修复列的名称和数量。列名称不能基于直到运行时才评估的表达式。就我所知,这在标准SQL和每个品牌的RDBMS中都是如此。
另外,您不能在SELECT子句中的列列表周围使用括号。
具有连续编号气味的列就像一个非常糟糕的数据库设计。 Btw:SELECT列的列表不需要放在括号中。 –
这是一个让人理解的例子。下一次想想你的头不是用你的鼻子想要的! – Wel
前缀和数字**的连接将**产生像“some_name_1”,“some_name_2”,“some_name_3”这样的列名称。像这样的设计闻起来好像没有正常化。如果这是*不是*你有什么,那么你应该提供一个更好的(即有意义的)示例 –