sql中的Sum字符串



我有一个表:

Id Name
1  phucuong
2  ksks
3  na

我想要的输出是:

phucuongksksna

如何写sql?

我尝试了concat,但它不起作用。

In SQL Server:

SELECT Name AS [text()] FROM YourTable FOR XML PATH ('')

在MySQL:

SELECT  GROUP_CONCAT(Name SEPARATOR '') FROM YourTable
SQL Server
SELECT STUFF  
(  
(  
SELECT ','+ CAST(RTRIM(LTRIM(g.Name)) AS VARCHAR(MAX))  
FROM YourTable g,YourTable e   
WHERE g.Id=e.Id  
FOR XMl PATH('')  
),1,1,''  
) 

在SQL Server数据库和Postgres数据库中,我们可以使用STRING_AGG:

SELECT STRING_AGG(name,'') FROM yourtable;
在Oracle数据库中,我们可以使用LISTAGG:
SELECT LISTAGG(name) FROM yourtable; -- or LISTAGG(name,''), both will do

在MariaDB中,与MYSQL中相同的查询将工作:

SELECT GROUP_CONCAT(name SEPARATOR '') FROM yourtable;

在SQLite DB中,它与前一个非常相似:

SELECT GROUP_CONCAT(name,'') FROM yourtable;

当然,也有其他的可能性/函数来实现这一点,但据我所知,这些是最有效的选择。

SELECT DISTINCT  
STUFF(
(
SELECT ',' + name
FROM table A1
WHERE A1.ID = A2.ID FOR XML PATH('')
), 1, 1, '') AS aliasName

最新更新