예제 #1
0
        public override string GetBooleanSqlQuery()
        {
            var rq = RightValue.GetSetSqlQuery();

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

            // check intersection
            return("exists (" + lq.Unparenthesis() + " intersect " + rq.Unparenthesis() + ")");
        }
예제 #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 GetSetSqlQuery()
 {
     return(LeftValue.GetSetSqlQuery() + " except " + RightValue.GetSetSqlQuery());
 }
예제 #4
0
 public override string GetSetSqlQuery()
 {
     return(LeftValue.GetSetSqlQuery() + " intersect " + RightValue.GetSetSqlQuery());
 }