我有一張桌子:
Id Name
1 phucuong
2 ksks
3 na
我想要的輸出是:
phucuongksksna
sql怎么寫?
我試過concat了,但沒有用。
uj5u.com熱心網友回復:
在 SQL 服務器中:
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,''
)
uj5u.com熱心網友回復:
在 SQL Server 資料庫和 Postgres 資料庫中,我們可以使用STRING_AGG:
SELECT STRING_AGG(name,'') FROM yourtable;
在 Oracle DB 中,我們可以使用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;
當然,還有其他可能性/功能可以實作這一點,但據我所知,這些是最有效的選擇。
uj5u.com熱心網友回復:
SELECT DISTINCT
STUFF(
(
SELECT ',' name
FROM table A1
WHERE A1.ID = A2.ID FOR XML PATH('')
), 1, 1, '') AS aliasName
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/533921.html
標籤:数据库细绳
下一篇:使用正則運算式從字串中提取鍵值對
