при выполнении запроса в sql server результат выглядит как неупорядоченный порядок
Ниже приведен код, когда я пытаюсь выполнить, но кажется неупорядоченным
public Map<String,List<Map<String,Object>>> getWorkFlowRule(int payRollId, String wpsFileType) {
String countQuery = "SELECT MAX(wfap.workflowRule) FROM workflowFileApprovalStatus as wfap";
Object countObj = getJdbcTemplate().queryForObject(countQuery, new Object[] {}, Integer.class);
int tempCount =0;
if(countObj!=null)
{
tempCount =(Integer) countObj;
}
final int ruleCount = tempCount;
int ruleNo = 1;
StringBuffer sbSql = new StringBuffer("with wfRule as( select distinct a.roleDescription," +
"a.filename,a.workflowrule,COUNT(*) as count ,cast(COUNT(*) as varchar(20))+' '" +
"+a.roleDescription as des from workflowFileApprovalStatus a inner join uae_wpsdownload " +
"down on a.fileId = down.cid left join fk_tbluser c on c.cid = a.approvedby where " +
"down.payrollid = ? and down.fileType = ? GROUP BY a.filename," +
"a.workflowrule,a.roleDescription HAVING COUNT(*) >0 ) ");
sbSql.append("SELECT distinct filename ");
while(ruleNo<=ruleCount)
{
sbSql.append(", ISNULL(STUFF((SELECT '+' + des from wfRule ssm WHERE ssm.filename=std.filename and " +
"ssm.workflowRule = "+ruleNo+ "FOR XML PATH('') ), 1, 1, ''), ' ') AS rule"+ruleNo);
//sbSql.append(" FOR XML PATH('') ), 1, 1, ''), ' ') AS rule"+ruleNo);
ruleNo++;
}
sbSql.append(" FROM wfRule std");
List params = new ArrayList();
params.add(payRollId);
params.add(wpsFileType);
return (Map<String, List<Map<String, Object>>>) getJdbcTemplate()
.query(sbSql.toString(), params.toArray(), new ResultSetExtractor() {
public Object extractData(ResultSet rs)
throws SQLException,
org.springframework.dao.DataAccessException {
Map<String, List<Map<String, Object>>> map = new HashMap<String, List<Map<String, Object>>>();
while (rs.next()) {
int rno =1;
Map<String, Object> record = new HashMap<String, Object>();
while(rno<=ruleCount)
{
record.put("rule"+rno, rs.getString("rule"+rno));
rno++;
}
String fileName = rs.getString("filename");
if (map.containsKey(fileName)) {
List<Map<String, Object>> list = map
.get(fileName);
list.add(record);
} else {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
list.add(record);
map.put(fileName, list);
}
}
return map;
}
});
}
ниже приведена структура таблицы
ожидаемый результат
Авторизатор + Суперавторизатор ИЛИ Утверждающий b + Утверждающий 3
фактический результат при выполнении запроса
Авторизатор + Суперавторизатор ИЛИ Утверждающий 3 + Утверждающий b