예제 #1
0
 public override string GetBooleanSqlQuery()
 {
     return(GetStringComparison() == StringComparison.CurrentCultureIgnoreCase
         ? "LOWER(" + LeftValue.GetStringSqlQuery() + ") LIKE LOWER('%" +
            RightValue.GetStringSqlQuery().Unwrap() + "') escape '\\'"
         : LeftValue.GetStringSqlQuery() + " LIKE '%" + RightValue.GetStringSqlQuery().Unwrap() +
            "' escape '\\'");
 }
예제 #2
0
        public override string GetBooleanSqlQuery()
        {
            if (CompareAsString())
            {
                return(GetStringComparison() == StringComparison.CurrentCultureIgnoreCase
                    ? "LOWER(" + LeftValue.GetStringSqlQuery() + ") LIKE LOWER('%" +
                       RightValue.GetStringSqlQuery().Unwrap() + "%') escape '\\'"
                    : LeftValue.GetStringSqlQuery() + " LIKE '%" + RightValue.GetStringSqlQuery().Unwrap() +
                       "%' escape '\\'");
            }
            var lq = LeftValue.GetSetSqlQuery();

            if (RightValue.SupportedTypes.Contains(FilterExpressionType.Numeric))
            {
                return(RightValue.GetNumericSqlQuery() + " IN " + lq);
            }
            var rq = RightValue.GetSetSqlQuery();

            // check intersection
            return("exists (" + lq.Unparenthesis() + " intersect " + rq.Unparenthesis() + ")");
        }
예제 #3
0
 public override string GetStringSqlQuery()
 {
     return(LeftValue.GetStringSqlQuery() + " || " + RightValue.GetStringSqlQuery());
 }
예제 #4
0
 public override string GetBooleanSqlQuery()
 {
     return(LeftValue.GetStringSqlQuery() + " REGEXP " + RightValue.GetStringSqlQuery());
 }