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})"); }
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})"); }
/// <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) + ")"); }
/// <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(); }