如何使用 ADQL 将行连接成一行
How to concat rows into a single row with ADQL
如何使用 ADQL(天文数据查询语言)将多行连接成一行?
我想做的是 select 对象的所有替代名称并像这样连接它们:
M 13
Hercules cluster
到
M 13, Hercules cluster
我目前在 SIMBAD 上使用的查询(returns 同一对象的多行,每个备用名称各一行):
-- Basic data from an object given one of its identifiers.
SELECT basic.OID,
RA,
DEC,
main_id AS "Name",
OTYPEDEF.otype_longname AS "Type",
OTYPEDEF.otype_shortname AS "TypeShort",
coo_bibcode AS "Coord Reference",
nbref AS "NbReferences",
plx_value as "Parallax",
rvz_radvel as "Radial velocity",
galdim_majaxis,
galdim_minaxis,
galdim_angle AS "Galaxy ellipse angle",
id1.id
FROM basic JOIN ident ON ident.oidref = oid
LEFT JOIN OTYPEDEF ON OTYPEDEF.otype = basic.otype
LEFT JOIN ident AS id1 ON id1.oidref = basic.OID
WHERE ident.id = 'M13'
想通了:
原来可以只使用列名的复数形式:
SELECT TOP 100 "public".ids.ids
FROM "public".basic
JOIN "public".ids ON "public".basic.oid = "public".ids.oidref
WHERE "public".basic.main_id = 'm13'
如何使用 ADQL(天文数据查询语言)将多行连接成一行?
我想做的是 select 对象的所有替代名称并像这样连接它们:
M 13
Hercules cluster
到
M 13, Hercules cluster
我目前在 SIMBAD 上使用的查询(returns 同一对象的多行,每个备用名称各一行):
-- Basic data from an object given one of its identifiers.
SELECT basic.OID,
RA,
DEC,
main_id AS "Name",
OTYPEDEF.otype_longname AS "Type",
OTYPEDEF.otype_shortname AS "TypeShort",
coo_bibcode AS "Coord Reference",
nbref AS "NbReferences",
plx_value as "Parallax",
rvz_radvel as "Radial velocity",
galdim_majaxis,
galdim_minaxis,
galdim_angle AS "Galaxy ellipse angle",
id1.id
FROM basic JOIN ident ON ident.oidref = oid
LEFT JOIN OTYPEDEF ON OTYPEDEF.otype = basic.otype
LEFT JOIN ident AS id1 ON id1.oidref = basic.OID
WHERE ident.id = 'M13'
想通了:
原来可以只使用列名的复数形式:
SELECT TOP 100 "public".ids.ids
FROM "public".basic
JOIN "public".ids ON "public".basic.oid = "public".ids.oidref
WHERE "public".basic.main_id = 'm13'