對文本數組進行排序的 SQL 查詢SELECT unnest(ARRAY['Go', '[Bravo]', 'Gopher', '[Alpha]', 'Grin', 'Delta']) ORDER BY 1 ASC; unnest --------- [Alpha] [Bravo] Delta Go Gopher GrinGO 代碼對字符串數組進行排序https://play.golang.org/p/UsWAKTz2Zj4package mainimport ( "fmt" "sort")func main() { s := []string{"Go", "[Bravo]", "Gopher", "[Alpha]", "Grin", "Delta"} sort.Strings(s) fmt.Println(s) // prints [Delta Go Gopher Grin [Alpha] [Bravo]]}為什么結果不一樣?
2 回答

慕虎7371278
TA貢獻1802條經驗 獲得超4個贊
似乎 Go 使用“ascii”排序。
您可以collate "C"在 Postgres 中使用:
SELECT word
from unnest(ARRAY['Go', '[Bravo]', 'Gopher', '[Alpha]', 'Grin', 'Delta']) as t(word)
ORDER BY word collate "C" ;

呼如林
TA貢獻1798條經驗 獲得超3個贊
在您的 SQL 查詢中,您unnest
使用數組。這似乎給出了一個排序順序,沒有或不考慮[
and ]
。
在 go 中,方括號被視為字符串的一部分。這兩個函數似乎都按字典順序排序。
- 2 回答
- 0 關注
- 137 瀏覽
添加回答
舉報
0/150
提交
取消