有沒有辦法在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」這樣的列名稱。像這樣的設計聞起來好像沒有正常化。如果這是*不是*你有什麼,那麼你應該提供一個更好的(即有意義的)示例 –