所以我必須通過在后格雷SQL中讀取查詢來在Java中編寫CSV。問題是csv必須具有某種格式,我無法做到這一點。我試圖在postgresql中完成這項工作,但如果這是不可能的,我也接受關于如何在Java中解決它的想法。我嘗試了很多按語法分組的方法,但它無法正常工作,在這一點上,我甚至不確定它在postgresql中是否可行,但如果可能的話,我想這樣做。假設我想看到所有學生參加一個班級分組。我以為這是因為日期,但我刪除了它,它沒有區別。SELECT classID, firstName || secondName || fathersName, studentGender, to_char(studentBirthDate, 'DD.MM.YYYY HH24:mm:ss')FROM Student, ClassWHERE studentGender = MaleGROUP BY classID, firstName, secondName, fathersName, studentGender, sutdentBirthdateORDER BY studentID;我期望以下結果:1, PaulLoganDan, JakeIanGolagan, JohnDoeNick, Male, NotSureHere2, MatthewJoshuaSamuel, JosephJamesBenjamin, AdamLukeHarry, LewisNathanBrad, Male, NotSureHere我得到了什么:1, PaulLoganDan, Male, 1.1.1999 \n1, JakeIanGolagan, Male, 2.2.1999 \n1, JohnDoeNick, Male, 3.3.1999 \n2, MatthewJoshuaSamuel, Male, 4.4.1999 \n2, JosephJamesBenjamin, Male, 5.5.1999 \n2, AdamLukeHarry, Male, 6.6.1999 \n2, LewisNathanBrad, Male, 7.7.1999 \n
1 回答

弒天下
TA貢獻1818條經驗 獲得超8個贊
我相信STRING_AGG功能是您正在尋找的,并且是為此類問題而設計的。它自后greSQL 9.0以來就存在了。
我認為它應該看起來像這樣:
SELECT classID,
STRING_AGG(firstName || secondName || fathersName, ', ')
FROM Student, Class
WHERE studentGender = Male
GROUP BY classID
ORDER BY studentID;
或者,從版本8.4開始,有ARRAY_AGG功能:
SELECT classID,
ARRAY_TO_STRING(ARRAY_AGG(firstName || secondName || fathersName), ', ')
FROM Student, Class
WHERE studentGender = Male
GROUP BY classID
ORDER BY studentID;
我不認為在舊版本中存在用于此的聚合函數。
添加回答
舉報
0/150
提交
取消