SqlSugar学习笔记七——分表查询的几种方式

本文介绍如何使用LINQ和SplitTable方法进行高效的时间区间查询、特定表名选择,以及模糊表名匹配,展示了SQL查询策略优化的实践技巧。
{
    //注意:
    //1、 分页有 OrderBy写 SplitTable 后面 ,uinon all后在排序
    //2、 Where尽量写到 SplitTable 前面,先过滤在union all 
    //原理:(sql union sql2) 写SplitTable 后面生成的括号外面,写前生成的在括号里面

    DateTime beginDate = DateTime.Now;
    DateTime endDate = DateTime.Now.AddYears(2);
    var list = db.Queryable<CommoditySubTableYear>().SplitTable(beginDate, endDate).ToList();
}


{
    //近3张,也可以表达式选择
    var list = db.Queryable<CommoditySubTableYear>().SplitTable(tabs => tabs.Take(3)).ToList();
}
//确定某一个表名查询
{
    var name = db.SplitHelper<CommoditySubTableYear>().GetTableName(DateTime.Now.AddYears(3));//根据时间获取表名
    var list = db.Queryable<CommoditySubTableYear>().SplitTable(tas => tas.InTableNames(name)).ToList();
}

//表名模糊匹配
{
    var list = db.Queryable<CommoditySubTableYear>()
        .SplitTable(tas => tas.Where(y => y.TableName.Contains("2019")))//表名包含2019的表
        .ToList();
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值