在此
SELECT field + ',' FROM table
我得到这样的东西
1,
2,
3,
但我需要得到
1,
2,
3
最后一个帽子没有逗号。
答案 0 :(得分:2)
答案 1 :(得分:0)
如果您使用的是mysql,这将返回your_table中your_column中所有值的逗号分隔列表(在一行中):
SELECT GROUP_CONCAT(your_column) FROM your_table
默认使用逗号,但SEPARATOR
,DISTINCT
和ORDER BY
可以specify more options。
答案 2 :(得分: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
答案 3 :(得分:0)
看来firebird允许您通过使用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
答案 4 :(得分:0)
As mentioned above MySQL would return comma separated values by default, in the past I've changed the separator to a space -
GROUP_CONCAT(table_column SEPARATOR " ")