update

2881099
2022-07-23 12:36:53 +08:00
parent 651c43c66b
commit 74a5f93234

@@ -18,7 +18,7 @@ fsql.Select<User1>()
```sql
SELECT *
FROM (
SELECT a.[CreateTime], a.[UpdateTime], a.[IsDeleted], a.[Sort], a.[Id], a.[GroupId], a.[Username], a.[Nickname], a.[Avatar], a.[Description], row_number() over( partition by a.[Nickname] order by a.[Id]) [rownum]
SELECT a.[Id], a.[Username], a.[Nickname], row_number() over( partition by a.[Nickname] order by a.[Id]) [rownum]
FROM [User1] a
) a
WHERE (a.[rownum] = 1)
@@ -34,13 +34,29 @@ WHERE (a.[rownum] = 1)
## ToSql + WithSql
这是早期提供的嵌套查询方法
```csharp
fsql.Select<Topic>()
.WithSql("select * from Topic where clicks > @val", new { val = 10 })
.Page(1, 10)
.ToList()
//SELECT a.`Id`, a.`Clicks`, a.`CategoryId`, a.`Title`, a.`CreateTime`
//FROM (select * from Topic where clicks > @val) a
var sql = fsql.Select<User1>()
.ToSql(a => new
{
item = a,
rownum = SqlExt.RowNumber().Over().PartitionBy(a.Nickname).OrderBy(a.Id).ToValue()
}, FieldAliasOptions.AsProperty);
fsql.Select<User1>()
.WithSql(sql)
.Where("a.rownum = 1")
.ToList();
```
```sql
SELECT a.[Id], a.[Username], a.[Nickname]
FROM (
SELECT a.[Id], a.[Username], a.[Nickname], row_number() over( partition by a.[Nickname] order by a.[Id]) [rownum]
FROM [User1] a
) a
WHERE (a.rownum = 1)
```
## 参考资料