在sqlite3数据库中,我有多个包含计算机名称的表。
a.name, b.name, c.hostname, d.addr_host
我需要收集子查询的所有主机名。但是,这些表共享simliar名称值,并且某些表具有例如simliar的名称。
1. a.name = machine001
2. b.name = machine001.domainname
是否可以使用查询创建所有主机名的单个列?
答案 0 :(得分:0)
我相信你只想要:
select a.name as hostname from a
union -- intentionally eliminate duplicates
select b.name from b
union
select c.hostname from c
union
select d.addr_host from d;
如果您只希望名称达到第一个'.'
,那么:
select substr(a.name, 1, instr(a.name || '.', '.') - 1) as hostname from a
union -- intentionally eliminate duplicates
select substr(b.name, 1, instr(b.name || '.', '.') - 1) from b
union
select substr(c.hostname, 1, instr(a.name || '.', '.') - 1) from c
union
select substr(d.addr_host, 1, instr(d.addr_host || '.', '.') - 1) from d;