public void BuildWhereTest() { FilterInfo filterInfo = new FilterInfo(); List<NormalFilterInfo> normalList = new List<NormalFilterInfo>() { new NormalFilterInfo(){ ConnectRelation= ConnectRelationEnum.And, FieldName="UserName", FieldType= FieldTypeEnum.Text, NormalWhereRelation= NormalWhereRelationEnum.IsNotNull, }, new NormalFilterInfo(){ ConnectRelation= ConnectRelationEnum.And, FieldName="Email", FieldType= FieldTypeEnum.Text, NormalWhereRelation= NormalWhereRelationEnum.Like, WhereValue="123" } }; List<CycleFilterInfo> cycleList = new List<CycleFilterInfo>() { new CycleFilterInfo(){ ConnectRelation= ConnectRelationEnum.And, CycleRelation= CycleWhereRelationEnum.Day, MinValue=10, MaxValue=20, FieldName="CreatedTime" }, new CycleFilterInfo(){ ConnectRelation= ConnectRelationEnum.And, CycleRelation= CycleWhereRelationEnum.Month, MinValue=6, MaxValue=12, FieldName="CreatedTime" }, }; List<PointInTimeFilterInfo> pointInTimeList = new List<PointInTimeFilterInfo>() { new PointInTimeFilterInfo(){ ConnectRelation= ConnectRelationEnum.And, FieldName="CreatedTime", WhereValue=200, PointInTimeWhereRelation= PointInTimeWhereRelationEnum.BeforeDay }, new PointInTimeFilterInfo(){ ConnectRelation= ConnectRelationEnum.And, FieldName="ModifiedTime", WhereValue=1, PointInTimeWhereRelation= PointInTimeWhereRelationEnum.BeforeYear } }; filterInfo.CycleFilterInfoList = cycleList; filterInfo.NormalFilterInfoList = normalList; filterInfo.PointInTimeFilterInfoList = pointInTimeList; string sql = _provider.BuildWhere(filterInfo); }
public void BuildWhereWithOrderTest() { //筛选出用户Id大于平均值的,并且密保问题不为空的用户 StatisticsInfo statisticsFilter = new StatisticsInfo() { TableName = "UserInfo", FieldName = "UserId", StatisticsRelation = StatisticsRelationEnum.Avg }; string avgSql = _provider.BuildStatistics(statisticsFilter); var normalList = new List<NormalFilterInfo>() { new NormalFilterInfo(){ FieldName="UserId", FieldType= FieldTypeEnum.Number, ConnectRelation= ConnectRelationEnum.And, NormalWhereRelation= NormalWhereRelationEnum.MoreThan, WhereValue=avgSql }, new NormalFilterInfo(){ FieldName="PwdQuestion", FieldType= FieldTypeEnum.Text, ConnectRelation= ConnectRelationEnum.And, NormalWhereRelation= NormalWhereRelationEnum.IsNotNull, } }; List<OrderInfo> orderList = new List<OrderInfo>() { new OrderInfo(){ FieldName = "UserId", OrderMode = OrderModeEnum.Asc }, new OrderInfo(){ FieldName = "Email", OrderMode = OrderModeEnum.Desc }, }; FilterInfo filterInfo = new FilterInfo(); filterInfo.NormalFilterInfoList = normalList; filterInfo.OrderInfoList = orderList; string sql = _provider.BuildWhere(filterInfo); }
public virtual string BuildWhere(FilterInfo filterInfo) { StringBuilder where = new StringBuilder(); // where 1 where.AppendFormat("{0}{1}{0}{2}", Constants.WhiteSpace, Constants.Where, "1=1"); if (filterInfo != null) { if (filterInfo.NormalFilterInfoList != null) { where.Append(this.BuildNormalWhere(filterInfo.NormalFilterInfoList)); } if (filterInfo.CycleFilterInfoList != null) { where.Append(this.BuildCycleWhere(filterInfo.CycleFilterInfoList)); } if (filterInfo.PointInTimeFilterInfoList != null) { where.Append(this.BuildPointInTimeWhere(filterInfo.PointInTimeFilterInfoList)); } if (filterInfo.OrderInfoList != null) { where.Append(this.BuildOrder(filterInfo.OrderInfoList)); } } return where.ToString(); }