如何从结果集输出中隐藏列标题?

时间:2017-10-04 13:54:54

标签: sql

我有一段SQL查询,它在顶行返回email_address列名称的结果集,如下所示:

|   email_adress    |
|-------------------|
| test@gmail.com    |
| test123@gmail.com |

我需要的是一个没有第一行的结果集,如:

| test@gmail.com    |
| test123@gmail.com |

这是我的疑问:

SELECT email_address
FROM company_digital
WHERE email_address IS NOT NULL
AND email_address IS NOT NULL
AND hash_id >= 700
AND hash_id < 800
UNION
SELECT email_address_2
FROM company_digital
WHERE email_address_2 IS NOT NULL
AND email_address_2 IS NOT NULL
AND hash_id >= 700
AND hash_id < 800
UNION
SELECT email_address_3
FROM company_digital
WHERE email_address_3 IS NOT NULL
AND email_address_3 IS NOT NULL
AND hash_id >= 700
AND hash_id < 800;

2 个答案:

答案 0 :(得分:1)

假设您的意思是列标题,那么请在查询中为第一个字段指定别名:

select email_address AS Whatever
from company_digital
where email_address is not null
and email_address is not null
and hash_id >=700 and hash_id <800
union
select email_address_2
from company_digital
where email_address_2 is not null
and email_address_2 is not null
and hash_id >=700 and hash_id <800
union
select email_address_3
from company_digital
where email_address_3 is not null
and email_address_3 is not null
and hash_id >=700 and hash_id <800;

哪个会输出:

| Whatever |
_____________
test@gmail.com

test123@gmail.com
_________________

select email_address AS ' '
from company_digital
where email_address is not null
and email_address is not null
and hash_id >=700 and hash_id <800
union
select email_address_2
from company_digital
where email_address_2 is not null
and email_address_2 is not null
and hash_id >=700 and hash_id <800
union
select email_address_3
from company_digital
where email_address_3 is not null
and email_address_3 is not null
and hash_id >=700 and hash_id <800;

哪个会输出:

|  |
_____________
test@gmail.com

test123@gmail.com
_________________

编辑清理代码:

SELECT email_address AS ' '
FROM company_digital
WHERE email_address IS NOT NULL
AND hash_id BETWEEN 700 AND 800
UNION
SELECT email_address_2
FROM company_digital
WHERE email_address_2 IS NOT NULL
AND hash_id BETWEEN 700 AND 800
UNION
SELECT email_address_3
FROM company_digital
WHERE email_address_3 IS NOT NULL
AND hash_id BETWEEN 700 AND 800;

或者取决于您的数据...

SELECT CASE WHEN email_address IS NOT NULL 
            THEN email_address
            WHEN email_address_2 IS NOT NULL 
            THEN email_address_2 
            WHEN email_address_3 IS NOT NULL 
            THEN email_address_3
       END AS ' '
FROM company_digital
WHERE hash_id BETWEEN 700 AND 800

答案 1 :(得分:1)

尝试一下:

SET FMTONLY ON;
SELECT email_address
FROM company_digital
WHERE email_address IS NOT NULL
AND email_address IS NOT NULL
AND hash_id >= 700
AND hash_id < 800
UNION
SELECT email_address_2
FROM company_digital
WHERE email_address_2 IS NOT NULL
AND email_address_2 IS NOT NULL
AND hash_id >= 700
AND hash_id < 800
UNION
SELECT email_address_3
FROM company_digital
WHERE email_address_3 IS NOT NULL
AND email_address_3 IS NOT NULL
AND hash_id >= 700
AND hash_id < 800;

SET FMTONLY OFF;