有个sql不知道怎么翻译成sqlsugar框架的格式 返回

SqlSugar 处理中
5 346
该叫什么 cps 发布于2024/7/23
悬赏:0 飞吻

SELECT
        RIGHT (GroupId, LEN(GroupId) -3))
FROM
    sp_favorite

这个sql不知道怎么用无实体的写法去表示, 目前是ObjectFuncModel.Create("Right", ObjectFuncModel.Create("Length", "GroupId")- prtId.Length - 3);这样的.可是那个-3哪里是报错的不知道怎么解决

热忱回答5

  • fate sta fate sta VIP0
    2024/7/23


        var func = ObjectFuncModel.Create("Substring",
            "Name",
            "{int}:0",
            ObjectFuncModel.Create("Format", ObjectFuncModel.Create("Length", "Name")   ,  "-", "{int}:3" ));
        var sels = SelectModel.Create(new SelectModel()
        {
            FieldName = func,
            AsName = "name"
        });
        var list= db.Queryable<Order>()
            .Select(sels).ToList();

    差不多这样,name长度不能为负数

    0 回复
  • fate sta fate sta VIP0
    2024/7/23

    如果不考虑多库可以直接用SQL重载

    select<object>("    RIGHT (GroupId, LEN(GroupId) -3)) as GroupId")

    0 回复
  • cps cps VIP0
    2024/7/23

    大佬我用了你的方法了,然后我发现了框架的一个问题,执行的时候一个参数没有加进去

    SELECT RIGHT([GroupId],LEN([GroupId]) - @p0_1000) AS [name] FROM [sp_favorite]  WHERE  (   [parentId] = @ConditparentId1000   )  

    {"@ConditparentId1000":"99/0001"}

    这是执行打印的日志@p0_1000 这个参数也就是原来代码里的"{int}:3" 没有加进去

    0 回复
  • fate sta fate sta VIP0
    2024/7/23

    @cps:提供DEMO 可以重现的

    0 回复
  • cps cps VIP0
    2024/7/23

    string prtId = "99/0001";

    var func = ObjectFuncModel.Create("Right",

    "GroupId",

    ObjectFuncModel.Create("Format", ObjectFuncModel.Create("Length", "GroupId"), "-", "{int}:8"));

    var sels = SelectModel.Create(new SelectModel()

    {

        FieldName = func,

        AsName = "name"

    });

    var dt = db.Queryable<object>().AS("sp_favorite").Select(sels).ToDataTable();







    0 回复