我正在尝试合并我们的人力资源数据。我必须创建自己的表来提供“区域”表
DROP TABLE
IF EXISTS testgiver.ldap_karen;
CREATE TABLE testgiver.ldap_karen (uid VARCHAR (10) NOT NULL PRIMARY KEY) SELECT
ldap_full.thomsnamedisplay,
ldap_full.uid as 'uid',
ldap_full.businesscategory,
ldap_full.mail,
ldap_full.givenname,
ldap_full.sn,
ldap_full.departmentnumber,
ldap_full.title,
ldap_full.thomsmgdescr,
ldap_full.thomsmgdescroverride,
ldap_full.thomscompanydescr,
ldap_full.thomscompanydescroverride,
ldap_full.thomslocationstreet1,
ldap_full.thomslocationcity,
ldap_full.thomslocationstatedescr,
ldap_full.thomslocationpostal,
ldap_full.thomslocationcountrydescr,
ldap_full.thomssupervisorid,
ldap_full.thomssupervisoriddescr,
ldap_full.thomscompanyshortdescroverride,
ldap_full.thomsbulevel1descr,
ldap_full.thomsbulevel1shortdescr,
ldap_full.thomsbulevel2descr,
ldap_full.thomsbulevel2shortdescr,
ldap_full.thomsroleindicatordescr,
ldap_full.thomsjobcodedescr,
ldap_full.thomsjobfamilycode,
ldap_full.thomsjobfamilydescr,
ldap_full.thomsrecordtypedescr,
sup_email.mail AS supemail,
reports_regionnames.regionname
FROM
ldap_full
LEFT JOIN ldap_full AS sup_email ON ldap_full.thomssupervisorid = sup_email.uid
LEFT JOIN reports_regions ON ldap_full.thomslocationcountrydescr = reports_regions.thomslocationcountrydescr
LEFT JOIN reports_regionnames ON reports_regions.thomsregion1 = reports_regionnames.regiondid
这工作正常并为每个用户添加一个区域。但是,我想更进一步。我希望它能够处理员工没有 ldap_full.thomslocationcountrydescr(因此为空)或者员工 ldap_full.thomslocationcountrydescr 不在查找表中的情况。这看起来很简单,但我已经尝试了一些东西,但我认为我的语法还不够接近。
只是希望将每个具有“新国家”或没有国家的员工的区域设置为“坏”。
可以说,你会更好,
NULL
因为那是缺少一个值,而不是指示缺少有效值的任意文本......但是:选择的最后一列将是
CASE
表达式的输出。当 ldap_full.thomslocationcountrydescr 为 NULL 时,我们返回一个字符串...否则当我们不匹配查找表,但 ldap_full.thomslocationcountrydescr 不为空时,我们返回一个不同的字符串...否则 (
ELSE
) 我们返回原始值,来自 reports_regionnames.regionname。第一场有效比赛获胜。
http://dev.mysql.com/doc/refman/5.6/en/control-flow-functions.html