首页 > 解决方案 > Sql 查询两列中的值

问题描述

我有一张学生桌。

Student_Name          Ethnicity1         Ethnicity2
============          ==========         ===========
A                     Asian              NZ European
B                     Indian             Asian
C                     NZ European   

 

我想写一个 SQL 语句,我只想将它们分成两个种族——亚洲人/非亚洲人。我不想使用 where 子句。所以我有 700 名学生,我想查看第三列,如果学生的第一种族或第二种族是亚洲人,那么第三列应该是亚洲人。像这样的东西

Student_Name        Ethnicity1         Ethnicity2             Ethnicity 
===========         ==========         ==========             ========
A                     Asian             NZ European           Asian
B                     Indian            Asian                 Asian
C                     NZ European                             Non-Asian

有人可以帮忙吗?

标签: sqlcase

解决方案


根据您指定的逻辑:

select t.*,
       (case when 'Asian' in (ethnicity1, ethnicity2) then 'Asian'
             else 'Non-Asian'
        end) as simplified_ethnicity

推荐阅读