/// <summary> /// Order BY clause with prefSQL keywords (SUMRANK or BESTRANK) /// </summary> /// <param name="context"></param> /// <returns></returns> public override PrefSQLModel VisitOrderBySpecial(PrefSQLParser.OrderBySpecialContext context) { SQLCommon.Ordering ordering = SQLCommon.Ordering.AsIs; if (context.op.Type == PrefSQLParser.K_SUMRANK) { ordering = SQLCommon.Ordering.RankingSummarize; } else if (context.op.Type == PrefSQLParser.K_BESTRANK) { ordering = SQLCommon.Ordering.RankingBestOf; } Model.Ordering = ordering; return(base.VisitOrderBySpecial(context)); }
/// <summary> /// Create the ORDER BY-Clause from the preference model /// </summary> /// <param name="model"></param> /// <param name="type"></param> /// <returns></returns> public string GetSortClause(PrefSQLModel model, SQLCommon.Ordering type) { string strSQL = ""; switch (type) { case SQLCommon.Ordering.AttributePosition: strSQL = GetSortAttributePositionClause(model); break; case SQLCommon.Ordering.RankingSummarize: strSQL = GetSortRankingSumClause(model); break; case SQLCommon.Ordering.RankingBestOf: strSQL = GetSortRankingBestOfClause(model); break; case SQLCommon.Ordering.AsIs: strSQL = ""; //Return no ORDER BY Clause break; case SQLCommon.Ordering.Random: strSQL = GetSortRandomClause(); break; case SQLCommon.Ordering.EntropyFunction: { strSQL = GetSortEntropyValue(model); break; } } if (strSQL.Length > 0) { strSQL = " ORDER BY " + strSQL; } return(strSQL); }