@@ -6078,6 +6078,84 @@ GROUP BY dummy
60786078----
60796079text1
60806080
6081+ 
6082+ # Test string_agg with ORDER BY clasuses (issue #17011)
6083+ statement ok
6084+ create table t (k varchar, v int);
6085+ 
6086+ statement ok
6087+ insert into t values ('a', 2), ('b', 3), ('c', 1), ('d', null);
6088+ 
6089+ query T
6090+ select string_agg(k, ',' order by k) from t;
6091+ ----
6092+ a,b,c,d
6093+ 
6094+ query T
6095+ select string_agg(k, ',' order by k desc) from t;
6096+ ----
6097+ d,c,b,a
6098+ 
6099+ query T
6100+ select string_agg(k, ',' order by v) from t;
6101+ ----
6102+ c,a,b,d
6103+ 
6104+ query T
6105+ select string_agg(k, ',' order by v nulls first) from t;
6106+ ----
6107+ d,c,a,b
6108+ 
6109+ query T
6110+ select string_agg(k, ',' order by v desc) from t;
6111+ ----
6112+ d,b,a,c
6113+ 
6114+ query T
6115+ select string_agg(k, ',' order by v desc nulls last) from t;
6116+ ----
6117+ b,a,c,d
6118+ 
6119+ query T
6120+ -- odd indexes should appear first, ties solved by v
6121+ select string_agg(k, ',' order by v % 2 == 0, v) from t;
6122+ ----
6123+ c,b,a,d
6124+ 
6125+ query T
6126+ -- odd indexes should appear first, ties solved by v desc
6127+ select string_agg(k, ',' order by v % 2 == 0, v desc) from t;
6128+ ----
6129+ b,c,a,d
6130+ 
6131+ query T
6132+ select string_agg(k, ',' order by
6133+   case
6134+     when k = 'a' then 3
6135+     when k = 'b' then 0
6136+     when k = 'c' then 2
6137+     when k = 'd' then 1 
6138+   end)
6139+ from t;
6140+ ----
6141+ b,d,c,a
6142+ 
6143+ query T
6144+ select string_agg(k, ',' order by
6145+   case
6146+     when k = 'a' then 3
6147+     when k = 'b' then 0
6148+     when k = 'c' then 2
6149+     when k = 'd' then 1 
6150+   end desc)
6151+ from t;
6152+ ----
6153+ a,c,d,b
6154+ 
6155+ statement ok
6156+ drop table t;
6157+ 
6158+ 
60816159# Tests for aggregating with NaN values
60826160statement ok
60836161CREATE TABLE float_table (
0 commit comments