如何从结果集或数据列表中删除空列?
例如:我运行一个查询,然后 SQL 返回一个结果集
Name Age Address Telephone
---- --- ------- ---------
Zed 23 12345456
Charlo 25 53232323
如何删除结果集中的空列“地址”?
提前致谢。
如何从结果集或数据列表中删除空列?
例如:我运行一个查询,然后 SQL 返回一个结果集
Name Age Address Telephone
---- --- ------- ---------
Zed 23 12345456
Charlo 25 53232323
如何删除结果集中的空列“地址”?
提前致谢。
不。你告诉 SQL 你想要查询中的哪些列,它会为你提供你要求的所有列。
如果地址始终为空或不需要,则只需更改生成ResultSet
. 例如,您的查询将类似于...
SELECT Name, Age, Telephone FROM Table;
否则,如果某些条目有地址,您将需要在ResultSet
.
您还可以将查询更改为仅返回带有地址的结果,例如...
SELECT Name, Age, Address, Telephone FROM Table WHERE Address IS NOT NULL;
您无法提前知道整列是否为空 - 您必须遍历您的每个条目ResultSet
以检测它,或者编写这样的计数查询......
SELECT COUNT(Address) FROM Table WHERE Address IS NOT NULL;
0
如果没有地址,这将返回。您也可以在其他列上使用它。
如果该列始终为空,则无法从查询中删除该列,但可以从映射ResultSet
到的对象中排除所有 NULL 值。(你不会ResultSet
超出持久层,是吗?)
如果该列始终为空,那么正如其他人所指出的,只需将其从查询的 SELECT 子句中删除即可。如果您使用“SELECT *”,请不要。这是一个不好的做法。您可能正在处理各种未使用的数据。如果 SELECT * 选择了一个不必要的 5 字节字段,我想没什么大不了的。但即使这就是它现在所做的一切,下周您或其他人可能会在记录中添加一个 50k BLOB 字段,然后为了获得您需要的 50 个字节,您还需要处理您不需要的 50k。
如果您的意思是在获得 ResultSet 后发现该列始终为空白或 null,那又如何呢?您必须阅读数据才能发现这一点。列在您的 ResultSet 中这一事实不会强制您在屏幕上显示什么。如果要从显示中删除列,可以在代码中执行此操作。