2015-04-05 2 views
0

В этомВыберите столбец таблицы и объявления «» кроме последней строки

SELECT field + ',' FROM table 

я получаю что-то вроде этого

1, 
2, 
3, 

Но мне нужно, чтобы получить

1, 
2, 
3 

последний шляпа нет запятая.

+0

Положительный дубликат [Объединить много строк в одну текстовую строку?] (Http://stackoverflow.com/questions/194852/concatenate-many-rows-into-a-single-text-string) –

ответ

2

Вы должны проверить эту функцию

LIST()

Кроме того, этот вопрос может быть дублирован вы можете проверить вопрос ниже и посмотреть, если какой-то ответ подходит для ваших нужд: Concatenate many rows into a single text string?

0

Если вы используете mysql, это вернет вам список, разделенный запятыми (в одной строке) всех значений в вашей_колонке в вашей таблице:

По умолчанию используется запятая, но вы можете specify more options, как SEPARATOR, DISTINCT и ORDER BY.

+0

Firebird имеет эквивалент ['LIST'] (http://www.firebirdsql.org/refdocs/langrefupd25-aggrfunc-list.html) –

+0

Opps, пропустил его тег: p – squall3d

0

Если есть уникальное поле, вы можете попробовать этот путь, чтобы получить последнюю строку без запятой.

SELECT 
CASE when isnull(B.field,'')='' THEN A.field+',' ELSE A.field END 
FROM [table] A 
left join 
(
    SELECT TOP 1 field FROM [table] ORDER BY unique_field DESC 
)B ON A.field=B.field 
ORDER BY A.unique_field 
0

Оказывается Жар позволяет ограничить строки с помощью использования rows ключевого слова: http://www.firebirdsql.org/refdocs/langrefupd20-select.html#langrefupd20-select-rows

Предполагая, что он также может быть использован в вложенное представление, можно выполнить следующие действия:

select case when x.field is not null 
      then t.field 
       else t.field + ',' 
       end as field_alias 
from tbl t 
left join 
     (
     select field 
     from tbl 
     order by field desc 
     rows 1 to 1 
     ) x 
      on t.field = x.field 
order by 1 
0

Как упоминалось выше, MySQL возвращал значения, разделенные запятыми, по умолчанию, в прошлом я сменил разделитель на пробел -

GROUP_CONCAT(table_column SEPARATOR " ")

Смежные вопросы