我想用更大的数据集返回一小部分数据......它真的只需要在返回时成为一个字符串 - 因为它只是显示...这是可能的吗?
我的情景 - 假设我有一个人的列表,我想要返回该列表 - 但是包括他们在之前的三个日期做出“条目”的信息:
我可以循环遍历主集,并重新查询数据库中当前用户创建“条目”的最后三个日期 - 但这会导致对数据库的额外调用 - 非常低效。
我可以简单地加入信息,并在我的输出上加入GROUP,(我没有证据)但我认为这也有点浪费,因为我依赖循环中的循环来输出。
我认为我想将这些“最后三个”输入日期作为子查询中的简单字符串返回...以便数据集只包含我想要的数据的“字符串”表示...因此我的循环输出非常有效......我对DB的查询......
这就是我所熟悉的东西 - 但它有炸弹,我可以找出原因......
SELECT
U.intID,
U.strName,
(
SELECT TRIM(CAST(CAST(EO.intData AS CHAR(25)) AS VARCHAR(25))) || ' on ' || TRIM(CAST(EO.dateRecorded AS VARCHAR(25))) || '<br/>'
FROM metrics EO
WHERE EO.fkID = U.intID
ORDER BY EO.dateRecorded DESC
FETCH FIRST 3 ROWS ONLY
) AS strLast3
FROM live.tblUsers U
答案 0 :(得分:0)
我对这种类型的东西使用UDF()。基本上你编写了一个以intID为参数的SQL函数。然后,该函数将查找该id的度量标准并将其全部返回到字符串中。通过这种方式,你可以避免使用不好的字符串操作,并且可以在主代码中执行类似的操作:
SELECT U.intID,
U.strName,
GetMetrics( U.intID )
FROM live.tblUsers U