繁体   English   中英

是否有一种SQL语法会根据同一表中第3列的相等值搜索2列来创建新列?

[英]Is there a SQL syntax that will create new column by searching in 2 columns based on equal value of 3rd column in same table?

我有1个表,其字段名为:class_code,name1,class_code1,name2,class_code2。 我想搜索class_code的值,并将其显示为class_code和仅名称,其中class_code = class_code1或class_code = class_code2。 结果将显示class_code和名称

是否可以使用sql join语法?

这是表:

    class_code  name1     class_code1   name2     class_code2
    C0001       John      C0002         Ben       C0001
    C0002       Ren       C0001         Elizh     C0002
    C0001       Jeff      C0001         Harry     C0001

我需要的输出是:

    class_code        name
    C0001             Ben
    C0002             Elizh
    C0001             Jeff
    C0001             Harry

如果打算将class_code1和name1放在一起,将class_code2和name2放在一起,则可以使用UNION

SELECT class_code1 AS class_code, name1 AS name FROM table
UNION
SELECT class_code2 AS class_code, name2 AS name FROM table

如果我做对了

SELECT class_code, name1 
FROM tbl
WHERE class_code = class_code1 
UNION --ALL
SELECT class_code, name2
FROM tbl
WHERE class_code = class_code2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM