SQL-如何合并(UNION?)3列,同时在另一列上使用WHERE子句

用户名

我正在尝试将同一表中的3个电子邮件列合并为1个大电子邮件列,我可以使用以下SQL进行此操作:

SELECT email
FROM (
SELECT email
FROM accounts
UNION 
SELECT email2
FROM accounts
UNION 
SELECT email3
FROM accounts
)accounts  WHERE email LIKE '%@%'

但是我也希望只能将来自同一表(帐户组)的不同列=的行返回到特定值。例如,我认为可行:

SELECT email, accountgroup
FROM (

SELECT email, accountgroup
FROM accounts
UNION 
SELECT email2, accountgroup
FROM accounts
UNION 
SELECT email3, accountgroup
FROM accounts
)accounts
WHERE email LIKE  '%@%'
AND accountgroup = 'Vyrav'

第二条语句无法按预期工作,仅返回1行。我认为UNION正在合并帐户组列值相同(将是所有行)的行。

如果我修改第一条语句以使最后一行像这样:

)accounts  WHERE email LIKE '%@%' AND accountgroup='Vyrav'

它说在“ where子句”中有一个“未知列” accountgroup”

有人可以建议我在这里做错什么,或者我应该做些什么吗?

在此先感谢您的帮助。

斯里尼伏

试试这个:在这里工作小提琴

SELECT
      EMAIL,
      ACCOUNTGROUP
FROM
      (SELECT
            EMAIL AS EMAIL,
            ACCOUNTGROUP
       FROM
            ACCOUNTS
       UNION ALL
       SELECT
            EMAIL2 AS EMAIL,
            ACCOUNTGROUP
       FROM
            ACCOUNTS
       UNION ALL
       SELECT
            EMAIL3 AS EMAIL,
            ACCOUNTGROUP
       FROM
            ACCOUNTS) ACCOUNT
WHERE
      EMAIL LIKE '%@%'
      AND ACCOUNTGROUP = 'Vyrav';

结果:

EMAIL                     ACCOUNTGROUP             
------------------------- -------------------------
[email protected]                   Vyrav                    
[email protected]                   Vyrav                    
[email protected]                   Vyrav                    

3 rows selected.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在SQL的一列上同时应用REPLACE和UPPER

来自分类Dev

SQL LEFT JOIN 与来自另一列的 where 子句

来自分类Dev

如何获取在SQL Server的另一列上具有多个值的行?

来自分类Dev

同一个表的列上的 SQL 连接与另一列上的 MAX

来自分类Dev

SQL:使用3个不同的where子句查询同一列3次

来自分类Dev

SQL查询一列上的多列DISTINCT

来自分类Dev

SQL查询可在同一列上实现多个WHERE条件

来自分类Dev

嵌套在一列上的 Sql 比较

来自分类Dev

如何在SQL的同一列上创建多个条件

来自分类Dev

SQL:在一列上使用两个条件进行选择

来自分类Dev

SQL根据另一列合并列

来自分类Dev

SQL:在另一列上发现重复项时,请选择最新的日期时间值

来自分类Dev

DB2 SQL查询,以除去一个列上的重复项,然后提供新子集中的另一列上的重复项总和

来自分类Dev

Rails 4表的SQL查询使用.where正确读取一列,但不能正确读取另一列

来自分类Dev

如何使用C#或SQL将两列合并为一列

来自分类Dev

如何在SQL中使用另一列的内容将数据从一列拆分为单独的列

来自分类Dev

SQL列添加另一列

来自分类Dev

SQL列添加另一列

来自分类Dev

SQL:如何根据SQL中另一列中的值范围对一列求和?

来自分类Dev

如何通过使用另一列中的数据过滤一列来过滤SQL查询的结果

来自分类Dev

如何使用SQL Server解析表中一列中的数据并将结果放入另一列中?

来自分类Dev

将一个SQL列合并到另一列中,并删除重复项

来自分类Dev

SQL按列排序并同时按另一列分组

来自分类Dev

Sybase SQL Anywhere将所有约束放在一列上

来自分类Dev

在SQL Server的同一列上创建多个非聚集索引

来自分类Dev

在同一列上具有2个INNER JOIN的SQL不起作用

来自分类Dev

当在同一列上定义主键时,仍需要SQL Server索引吗?

来自分类Dev

非唯一列上的SQL Server聚集索引

来自分类Dev

SQL连接并获得另一列

Related 相关文章

  1. 1

    如何在SQL的一列上同时应用REPLACE和UPPER

  2. 2

    SQL LEFT JOIN 与来自另一列的 where 子句

  3. 3

    如何获取在SQL Server的另一列上具有多个值的行?

  4. 4

    同一个表的列上的 SQL 连接与另一列上的 MAX

  5. 5

    SQL:使用3个不同的where子句查询同一列3次

  6. 6

    SQL查询一列上的多列DISTINCT

  7. 7

    SQL查询可在同一列上实现多个WHERE条件

  8. 8

    嵌套在一列上的 Sql 比较

  9. 9

    如何在SQL的同一列上创建多个条件

  10. 10

    SQL:在一列上使用两个条件进行选择

  11. 11

    SQL根据另一列合并列

  12. 12

    SQL:在另一列上发现重复项时,请选择最新的日期时间值

  13. 13

    DB2 SQL查询,以除去一个列上的重复项,然后提供新子集中的另一列上的重复项总和

  14. 14

    Rails 4表的SQL查询使用.where正确读取一列,但不能正确读取另一列

  15. 15

    如何使用C#或SQL将两列合并为一列

  16. 16

    如何在SQL中使用另一列的内容将数据从一列拆分为单独的列

  17. 17

    SQL列添加另一列

  18. 18

    SQL列添加另一列

  19. 19

    SQL:如何根据SQL中另一列中的值范围对一列求和?

  20. 20

    如何通过使用另一列中的数据过滤一列来过滤SQL查询的结果

  21. 21

    如何使用SQL Server解析表中一列中的数据并将结果放入另一列中?

  22. 22

    将一个SQL列合并到另一列中,并删除重复项

  23. 23

    SQL按列排序并同时按另一列分组

  24. 24

    Sybase SQL Anywhere将所有约束放在一列上

  25. 25

    在SQL Server的同一列上创建多个非聚集索引

  26. 26

    在同一列上具有2个INNER JOIN的SQL不起作用

  27. 27

    当在同一列上定义主键时,仍需要SQL Server索引吗?

  28. 28

    非唯一列上的SQL Server聚集索引

  29. 29

    SQL连接并获得另一列

热门标签

归档