package foundation.persist.adapter;
|
|
import foundation.server.config.DBaseType;
|
|
public class GroupAdapter implements IDBAdapter{
|
|
@Override
|
public String toSqlString(DBaseType type) {
|
return null;
|
}
|
|
@Override
|
public String getFunciton(DBaseType dbaseType, String functionName) {
|
if ("groupConcatStart".equalsIgnoreCase(functionName)) {
|
return getGroupConcatStart(dbaseType);
|
}
|
|
if ("groupConcatEnd".equalsIgnoreCase(functionName)) {
|
return getGroupConcatEnd(dbaseType);
|
}
|
|
return null;
|
}
|
|
private String getGroupConcatStart(DBaseType dbaseType) {
|
if (dbaseType.isOracle()) {
|
return "listagg";
|
}
|
else if (dbaseType.isMySQL()) {
|
return "group_concat";
|
}
|
else if (dbaseType.isSQLServer()) {
|
return "string_agg";
|
}
|
return "listagg";
|
}
|
|
private String getGroupConcatEnd(DBaseType dbaseType) {
|
if (dbaseType.isOracle()) {
|
return "within group(order by 1)";
|
}
|
else if (dbaseType.isMySQL()) {
|
return "";
|
}
|
else if (dbaseType.isSQLServer()) {
|
return "within group(order by 1)";
|
}
|
|
return "ADD_DAYS";
|
}
|
|
}
|