protected virtual string CompileExistsCondition(SqlResult ctx, ExistsCondition item)
        {
            var op = item.IsNot ? "NOT EXISTS" : "EXISTS";

            var subCtx = CompileSelectQuery(item.Query);

            ctx.Bindings.AddRange(subCtx.Bindings);

            return($"{op} ({subCtx.RawSql})");
        }
Example #2
0
        protected virtual string CompileExistsCondition(SqlResult context, ExistsCondition item)
        {
            string op = item.IsNot ? "NOT EXISTS" : "EXISTS";

            SqlResult subContext = CompileSelectQuery(item.Query);

            context.Bindings.AddRange(subContext.Bindings);

            return($"{op} ({subContext.RawSql})");
        }
Example #3
0
        /// <summary>
        /// 值包含在一段子查询中的条件解析
        /// </summary>
        /// <param name="condition">需要解析的条件对象</param>
        /// <returns>返回解析后的条件字符串</returns>
        protected override string ExistsParse(ExistsCondition condition)
        {
            StringBuilder conditionStr = new StringBuilder(" ");
            string        queryColName = condition.SearchColumn.CurrentSearcher.TableName + "." + condition.SearchColumn.ColumnName;

            if (string.IsNullOrEmpty(condition.SearchColumn.ConditionString))
            {
                conditionStr.Append(queryColName);
            }
            else
            {
                conditionStr.Append(condition.SearchColumn.ConditionString.Replace(SQLPlaceholder.ColName, queryColName));
            }

            conditionStr.Append(" Exists ( ");
            conditionStr.Append(condition.SQL);
            conditionStr.Append(") ");

            return(conditionStr.ToString());
        }
        protected virtual string CompileExistsCondition <T>(ExistsCondition <T> item) where T : BaseQuery <T>
        {
            var op = item.IsNot ? "NOT EXISTS" : "EXISTS";

            return(op + " (" + CompileQuery(item.Query) + ")");
        }
Example #5
0
        /// <summary>
        /// 值包含在一段子查询中的条件解析
        /// </summary>
        /// <param name="condition">需要解析的条件对象</param>
        /// <returns>返回解析后的条件字符串</returns>
        protected override string ExistsParse(ExistsCondition condition)
        {
            StringBuilder conditionStr = new StringBuilder(" ");
            string queryColName = condition.SearchColumn.CurrentSearcher.TableName + "." + condition.SearchColumn.ColumnName;

            if (string.IsNullOrEmpty(condition.SearchColumn.ConditionString))
            {
                conditionStr.Append(queryColName);
            }
            else
            {
                conditionStr.Append(condition.SearchColumn.ConditionString.Replace(SQLPlaceholder.ColName, queryColName));
            }

            conditionStr.Append(" Exists ( ");
            conditionStr.Append(condition.SQL);
            conditionStr.Append(") ");

            return conditionStr.ToString();
        }