我正在使用 SQL 查询来获取数据并将列名和值映射到一个元组,然后将一组元组映射到一个映射列表,我需要跳过大小为 0 的映射,只获取带有值的映射。
我的代码和结果如下。
SELECT orbkn_surgery_procedures_order_status,orbkn_surgery_procedures_id,orbkn_surgery_procedures_or_booking,orbkn_surgery_procedures_created_date_time,orbkn_surgery_procedures_order_id FROM OR_Cube_for_surgery
try {
NamedDB(Symbol(db)) readOnly { implicit session =>
Right(
SQL(sql + " LIMIT 50000")
.map(_.toMap())
.list
.apply()
)
}
Run Code Online (Sandbox Code Playgroud)
我得到的结果集
Right(List(Map(), Map(orbkn_surgery_procedures_id -> 41, orbkn_surgery_procedures_or_booking -> 734, orbkn_surgery_procedures_order_id -> 105610),Map(orbkn_surgery_procedures_order_status -> OPD, orbkn_surgery_procedures_id -> 174, orbkn_surgery_procedures_or_booking -> 883, orbkn_surgery_procedures_order_id -> 100788), Map(orbkn_surgery_procedures_order_status -> IPD, orbkn_surgery_procedures_id -> 175, orbkn_surgery_procedures_or_booking -> 884, orbkn_surgery_procedures_order_id -> 106321), Map(orbkn_surgery_procedures_order_status -> IPD, orbkn_surgery_procedures_id -> 176, orbkn_surgery_procedures_or_booking -> 886, orbkn_surgery_procedures_order_id -> 106354),Map(), Map(), Map(), Map(), Map(), Map(), Map(), Map(), Map(), Map(), Map(), Map()))
Run Code Online (Sandbox Code Playgroud)
我需要摆脱这些Map(),只得到一组地图(有任何数据)
您需要过滤Maps列表以删除空的,如下所示:
Right(
SQL(sql + " LIMIT 50000")
.map(_.toMap())
.list
.apply()
.filter(_.nonEmpty)
)
Run Code Online (Sandbox Code Playgroud)
但是,如果可能,最好将过滤器放在 SQL 中并让数据库完成工作。
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |