Skip to content

Commit 2b8f553

Browse files
authored
Merge pull request #16 from n-r-w/alias_order_by
Select.Alias.OrderBy
2 parents e8361c7 + 13a1431 commit 2b8f553

File tree

3 files changed

+19
-6
lines changed

3 files changed

+19
-6
lines changed

README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -221,14 +221,16 @@ Select("id", "name").From("users").Paginate(PaginatorByPage(10, 3)).OrderBy("id
221221
Select().
222222
Alias("u").Columns("id", "name").
223223
From("users u")
224-
Alias("u").GroupBy("id", "name")
225-
// SELECT u.id, u.name FROM users u GROUP BY u.id, u.name
224+
Alias("u").GroupBy("id", "name").
225+
Alias("u").OrderBy("id").
226+
// SELECT u.id, u.name FROM users u GROUP BY u.id, u.name ORDER BY u.id
226227
227228
Select().
228229
Alias("u", "pref").Columns("id", "name").
229230
From("users u")
230-
Alias("u", "pref").GroupBy("id", "name")
231-
// SELECT u.id AS pref_id, u.name AS pref_name FROM users u GROUP BY u.id AS pref_id, u.name AS pref_name
231+
Alias("u", "pref").GroupBy("id", "name").
232+
Alias("u", "pref").OrderBy("id").
233+
// SELECT SELECT u.id AS pref_id, u.name AS pref_name FROM users u GROUP BY u.id AS pref_id, u.name AS pref_name ORDER BY u.id AS pref_id
232234
```
233235
234236
## Miscellaneous

select.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,6 +546,15 @@ func (a alias) GroupBy(groupBys ...string) SelectBuilder {
546546
return a.builder.GroupBy(prepareAliasColumns(a.table, a.prefix, groupBys...)...)
547547
}
548548

549+
// OrderBy sets the order by for the table alias.
550+
func (a alias) OrderBy(orderBys ...string) SelectBuilder {
551+
if len(orderBys) == 0 {
552+
return a.builder
553+
}
554+
555+
return a.builder.OrderBy(prepareAliasColumns(a.table, a.prefix, orderBys...)...)
556+
}
557+
549558
func prepareAliasColumns(table string, prefix []string, columns ...string) []string {
550559
columnsPrepared := make([]string, 0, len(columns))
551560

select_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -504,15 +504,17 @@ func TestTableAlias(t *testing.T) {
504504
Alias("u").Columns("id", "name").
505505
From("users u").
506506
Alias("u").GroupBy("id", "name").
507+
Alias("u").OrderBy("id").
507508
ToSql()
508509
assert.NoError(t, err)
509-
assert.Equal(t, "SELECT u.id, u.name FROM users u GROUP BY u.id, u.name", sql)
510+
assert.Equal(t, "SELECT u.id, u.name FROM users u GROUP BY u.id, u.name ORDER BY u.id", sql)
510511

511512
sql, _, err = Select().
512513
Alias("u", "pref").Columns("id", "name").
513514
From("users u").
514515
Alias("u", "pref").GroupBy("id", "name").
516+
Alias("u", "pref").OrderBy("id").
515517
ToSql()
516518
assert.NoError(t, err)
517-
assert.Equal(t, "SELECT u.id AS pref_id, u.name AS pref_name FROM users u GROUP BY u.id AS pref_id, u.name AS pref_name", sql)
519+
assert.Equal(t, "SELECT u.id AS pref_id, u.name AS pref_name FROM users u GROUP BY u.id AS pref_id, u.name AS pref_name ORDER BY u.id AS pref_id", sql)
518520
}

0 commit comments

Comments
 (0)