class Sequel::SQL::StringAgg

The StringAgg class represents an aggregate string concatentation.

Attributes

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.

Public Class Methods

new(expr, separator=nil) { |self| ... } click to toggle source

Set the expression and separator

    # File lib/sequel/extensions/string_agg.rb
147 def initialize(expr, separator=nil)
148   @expr = expr
149   @separator = separator
150   yield self if block_given?
151   freeze
152 end

Public Instance Methods

distinct() click to toggle source

Return a modified StringAgg that uses distinct expressions

    # File lib/sequel/extensions/string_agg.rb
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
is_distinct?() click to toggle source

Whether the current expression uses distinct expressions

    # File lib/sequel/extensions/string_agg.rb
155 def is_distinct?
156   @distinct == true
157 end
order(*o) click to toggle source

Return a modified StringAgg with the given order

    # File lib/sequel/extensions/string_agg.rb
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