def to_select_sql
return nil unless include_as_association? && available?
separator = all_ints? || all_datetimes? || @crc ? ',' : ' '
clause = columns_with_prefixes.collect { |column|
case type
when :string
adapter.convert_nulls(column)
when :datetime
adapter.cast_to_datetime(column)
when :multi
column = adapter.cast_to_datetime(column) if is_many_datetimes?
column = adapter.convert_nulls(column, '0') if is_many_ints?
column
else
column
end
}.join(', ')
clause = adapter.crc(clause) if @crc
clause = adapter.concatenate(clause, separator) if concat_ws?
clause = adapter.group_concatenate(clause, separator) if is_many?
clause = adapter.downcase(clause) if insensitive?
"#{clause} AS #{quote_column(unique_name)}"
end