解决查询同步人员信息,使用 case when then解决多IF判断问题
select LOCATION,
cert_type,
WEIXIN,
MARRIAGE,
RECORD_WAGE,
SPECIALTY,
EMAIL,
WORKING_TIME,
REPORTER,
NATION,
GENDER,
TELPHONE,
OFFICENUMBER,
post_type,
ID,
BIRTHDAY,
AGE,
POSTALCODE,
QQ,
WORK_STARTING_DATE,
WEIBO,
POSTADDRESS,
POLITICS,
HOBBY,
MSN,
UPDATE_TIME,
BIRTHPLACE,
EXT_ATTR_4,
EXT_ATTR_5,
EXT_ATTR_2,
EXT_ATTR_3,
ADDRESS,
yearsOFservice,
EXT_ATTR_1,
person_class,
DEGREE,
USED_NAME,
BLOG,
ID_CARD,
WEBSITE,
case
when EXT_ATTR_2 is null then EXT_ATTR_2
when EXT_ATTR_2 = CONVERT(VARCHAR (10), DATEADD(MONTH, datediff(MONTH, 0, EXT_ATTR_2), 0), 120) then CONVERT(
VARCHAR (10), DATEADD(MONTH, datediff(MONTH, 0, EXT_ATTR_2), 0), 120)
else CONVERT(VARCHAR (10), DATEADD(MONTH, DATEDIFF(MONTH, 0, EXT_ATTR_2) + 1, 0), 120) end as annuity_pay
from mid_org_person_base
where id = '${code}';
select cert_type,
EMAIL,
GENDER,
TELPHONE,
OFFICENUMBER,
post_type,
ID,
EXT_ATTR_4,
EXT_ATTR_5,
EXT_ATTR_2,
case
when EXT_ATTR_2 is null then EXT_ATTR_2
when EXT_ATTR_2 = CONVERT(VARCHAR (10), DATEADD(MONTH, datediff(MONTH, 0,EXT_ATTR_2), 0), 120) then CONVERT(
VARCHAR (10), DATEADD(MONTH, datediff(MONTH, 0, EXT_ATTR_2), 0), 120)
else CONVERT(VARCHAR (10), DATEADD(MONTH, DATEDIFF(MONTH, 0, EXT_ATTR_2) + 1, 0), 120)
end as rizhiDate,
EXT_ATTR_3,
ADDRESS,
EXT_ATTR_1,
person_class,
ID_CARD
from mid_org_person_base
where id = '${code}';
case
when EXT_ATTR_1 is null then EXT_ATTR_1
when EXT_ATTR_1 = (convert(char(10), dateadd(month, datediff(month, 0, EXT_ATTR_1), 0), 126)) then (convert(
char(10), dateadd(month, datediff(month, 0, EXT_ATTR_1), 0)))
else convert(char(10), DATEADD(MONTH, DATEDIFF(MONTH, 0, EXT_ATTR_1) + 1, 0), 126)
end as rizhiDate,
select
case
when 范围条件 then 产生的结果
when 范围条件 then 产生的结果
else 不是以上范围产生的结果
end
from 表名
select cert_type,
EMAIL,
GENDER,
TELPHONE,
OFFICENUMBER,
post_type,
ID,
EXT_ATTR_4,
EXT_ATTR_5,
EXT_ATTR_2,
# ISNULL(IF(EXT_ATTR_2 = convert(char(10), dateadd(month, datediff(month, 0, getdate()), 0), 126),
# convert(char(10), dateadd(month, datediff(month, 0, getdate()), 0), 126),
# convert(char(10), DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) + 1, 0), 126)), "") as extattr,
IF(ISNULL(EXT_ATTR_2,0))
EXT_ATTR_3,
ADDRESS,
EXT_ATTR_1,
person_class,
ID_CARD
from mid_org_person_base
where id = '${code}';
select isnull(EXT_ATTR_2,GETDATE())
from mid_org_person_base
where id = '${code}';
select if(2>1,1,0) from mid_org_person_base where id = '${code}';
select DATE_ADD(curdate()-day(curdate())+1,interval 1 month); -- 获取下个月的第一天
select DATE_ADD(curdate(),interval -day(curdate())+1 day); -- 获取本月第一天
ifnull(if(EXT_ATTR_2 = (select DATE_ADD(curdate(), interval -day(curdate()) + 1 day)),
(select DATE_ADD(curdate(), interval -day(curdate()) + 1 day)),
(select DATE_ADD(curdate() - day(curdate()) + 1, interval 1 month))),null),
select DATEADD(MM,DATEDIFF(MM,0,GETDATE()),0) AS 本月第一日
,DATEADD(DAY,1,DATEADD(MM,DATEDIFF(MM,0,GETDATE())+1,0)) 本月最后一日
select CONVERT(VARCHAR (10), DATEADD(MONTH, DATEDIFF(MONTH, 0,'2022-12-02'), 0), 120) AS 本月第一日
,CONVERT(VARCHAR(10),DATEADD(MONTH, DATEDIFF(MONTH, 0, '2022-12-02')+1, 0),120) 下月第一日
convert(char(10),getdate(),126)
--本月第一天
select dateadd(month, datediff(month, 0, getdate()), 0);
--本月最后一天
select dateadd(month, datediff(month, -1, getdate()), -1);
--上月第一天
select DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0)
--上月最后一天
select DATEADD(MONTH, DATEDIFF(MONTH, -1, GETDATE())-1, -1)