我有一段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;
答案 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;