Firebird SQL:在查询文本中传递多行数据

时间:2018-01-30 07:05:27

标签: sql firebird

是否可以使用元素数组作为select语句? 我知道可以根据这样的静态元素获取行:

SELECT 405, CAST('4D6178' AS VARCHAR(32)), CAST('2017-01-01 00:00:00' AS TIMESTAMP) FROM rdb$databas

这将为您提供一行表格选择。 现在我想把它作为n行的表格,但我不知道如何实现这一点。由于firebird不允许多个select语句,我不仅可以追加n次选择。

信息:Firebird 2.1

1 个答案:

答案 0 :(得分:2)

使用UNION ALL子句。

https://en.wikipedia.org/wiki/Set_operations_(SQL)#UNION_operator

Select x,y,z From RDB$DATABASE
    UNION ALL
Select a,b,c From RDB$DATABASE
    UNION ALL
Select k,l,m From RDB$DATABASE

但请注意,这只应用于小数据。 Firebird查询长度限制为64KB,即使不是这样 - 滥用此方法注入大量数据也不会很好。

如果您确实需要输入大量类似(相同结构)的数据行,请使用全局临时表

以下讨论希望能为您提供更多见解:   https://stackoverflow.com/a/43997801/976391