Class | Sequel::SQL::StringAgg |
In: |
lib/sequel/extensions/string_agg.rb
|
Parent: | GenericExpression |
The StringAgg class represents an aggregate string concatentation.
expr | [R] | The string expression for each row that will concatenated to the output. |
order_expr | [R] | The expression that the aggregation is ordered by. |
separator | [R] | The separator between each string expression. |
Set the expression and separator
# File lib/sequel/extensions/string_agg.rb, line 147 147: def initialize(expr, separator=nil) 148: @expr = expr 149: @separator = separator 150: yield self if block_given? 151: freeze 152: end
Return a modified StringAgg that uses distinct expressions
# File lib/sequel/extensions/string_agg.rb, line 160 160: def distinct 161: self.class.new(@expr, @separator) do |sa| 162: sa.instance_variable_set(:@order_expr, @order_expr) if @order_expr 163: sa.instance_variable_set(:@distinct, true) 164: end 165: end
Return a modified StringAgg with the given order
# File lib/sequel/extensions/string_agg.rb, line 168 168: def order(*o) 169: self.class.new(@expr, @separator) do |sa| 170: sa.instance_variable_set(:@distinct, @distinct) if @distinct 171: sa.instance_variable_set(:@order_expr, o.empty? ? nil : o.freeze) 172: end 173: end