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

SELECT
RIGHT (GroupId, LEN(GroupId) -3))
FROM
sp_favorite
这个sql不知道怎么用无实体的写法去表示, 目前是ObjectFuncModel.Create("Right", ObjectFuncModel.Create("Length", "GroupId")- prtId.Length - 3);这样的.可是那个-3哪里是报错的不知道怎么解决
热忱回答(5)
-
fate sta VIP0
2024/7/23var 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 VIP0
2024/7/23如果不考虑多库可以直接用SQL重载
select<object>(" RIGHT (GroupId, LEN(GroupId) -3)) as GroupId")
0 回复 -
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 VIP0
2024/7/23@cps:提供DEMO 可以重现的
0 回复 -
cps VIP0
2024/7/23string 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 回复