sql查询只获取那些sum(colUmn)的记录

时间:2013-10-24 14:47:29

标签: sql sql-server plsql db2

我有一张包含数百万条记录的表,其中包含有关用户,他或她在BLOB中的文档以及每行保存文件大小的列的信息。 在报告时,我需要提取所有这些记录及其附件,并将它们存储在一个文件夹中。但是,约束是文件夹大小不应超过4GB。

我需要的是仅获取记录直到该记录,其中文件大小的总和小于4GB。我几乎没有任何数据库经验,也没有任何数据库专家可以参考。

例如 - 假设我需要仅获取记录直到sum(fileSize)< 9

Name fileSize
A       1
B       2
C       3
D       2
E       9
F       4

我的查询需要返回记录A,B,C和D. 此外,我需要存储另一个后续进程的第一个和最后一个记录的rowID / uniqueID。 正在使用的DB是IBM DB2。

谢谢!

1 个答案:

答案 0 :(得分:-1)

所以这里有一些技巧可以找到你的文件大小。在程序中,您可以使用数据进行管理。

从文件中选择长度(file_data)

其中length(file_data)< 99999999;

LENGTH(FILE_DATA)

        82944
        82944
        91136

选择了3行。

从文件中选择dbms_lob.getlength(file_data)

其中length(file_data)< 89999;

DBMS_LOB.GETLENGTH(FILE_DATA)

                    82944
                    82944

选择了2行。

dbms_lob.getlength() vs. length() to find blob size in oracle

希望这会有所帮助......