SQL查询

粘上我前段时间写的sql语句

select distinct
t1.mcs_cre_credit_head_id,
t2.mcs_cre_credit_line_customer_change_head_id,
t1.bill_code,t2.customer_code,
t2.customer_name,
(CASE t2.has_married WHEN 'wh' THEN '未婚' WHEN 'yh' THEN '已婚' WHEN 'ly' THEN '离异' WHEN 'so' THEN '丧偶' END) has_married,
(CASE t2.gender WHEN '1' THEN '' WHEN '0' THEN '' ELSE '请选择' END) AS gender,
(CASE t2.max_degree WHEN '1' THEN '初中及一下' WHEN '2' THEN '高中' WHEN '3' THEN '专科' WHEN '4' THEN '本科' WHEN '5' THEN '硕士及以上' WHEN '0' THEN '请选择' END) max_degree,
(CASE t4.work_unit_property WHEN 'gy' THEN '国营' WHEN 'my' THEN '民营' WHEN 'sy' THEN '私营' WHEN 'sz' THEN '三资' WHEN 'hh' THEN '合伙' WHEN 'gt' THEN '个体' WHEN 'qt' THEN '其他' ELSE '请选择' END) work_unit_property,
t5.comp_industry,
t4.work_unit_duty,
t6.house_address_city,
t6.house_address_district,
t6.house_address_province,
t6.house_building_area,
t8.rev_contact_number,
(CASE t8.credit_record_type WHEN '1' THEN '' WHEN '0' THEN '' ELSE '请选择' END) AS credit_record_type,
t8.rev_outstanding_loan,
t7.original_borrower_record,
(CASE t9.processing_form WHEN '320' THEN '罚款' WHEN '321' THEN '拘役管制' WHEN '322' THEN '劳动教养' WHEN '323' THEN '刑罚' ELSE '请选择' END) AS processing_form,
(CASE t9.involve_problem WHEN '317' THEN '不良行为' WHEN '319' THEN '刑事案件' WHEN '318' THEN '人身伤害' ELSE '请选择' END) AS involve_problem,
t10.execute_target,
(CASE t1.hasconmpre WHEN '302' THEN '单人贷' WHEN '303' THEN '共同2人' WHEN '304' THEN '3人以上' ELSE '请选择' END) AS '共贷情况',
(CASE t1.cre_loan_type WHEN '110' THEN '佳英贷' WHEN '111' THEN '佳楼贷' WHEN '112' THEN '佳薪贷' WHEN '113' THEN '佳业贷' ELSE '请选择' END)cre_loan_type,
t2.birthday,
t2.id_card,
t12.aver_balance,
t12.aver_payment,
t12.month_payment,
t13.unpay_loan_amount,
t13.unpay_loan_num,
t13.unpay_loan_balance,
t13.credit_card_total_amount,
t13.credit_card_most_amount,
t13.credit_have_amount,
t13.three_overdue_card_num,
t13.six_overdue_card_num,
t13.one_year_overdue_rate,
t13.two_year_overdue_rate,
t13.cur_overdue_card_amount,
t13.three_apply_time,
t13.six_apply_time,
t13.year_apply_time,
t13.guarantee_amount,
(CASE t13.ecurity_state WHEN '287' THEN '正常' WHEN '288' THEN '关注' WHEN '289' THEN '次级' WHEN '290' THEN '可疑' WHEN '291' THEN '损失' ELSE '请选择' END) ecurity_state,
t1.credit_purpose,
(CASE t14.borrower_quality WHEN '179' THEN '优质' WHEN '180' THEN '较好' WHEN '181' THEN '一般' WHEN '182' THEN '较差' ELSE '请选择' END)borrower_quality,
t14.max_repayment_limit_per_month,
(CASE t14.where_house_card WHEN '1' THEN '房产局' WHEN '2' THEN '本人' WHEN '3' THEN '调档' WHEN '4' THEN '银行' WHEN '5' THEN '未下来' ELSE '请选择' END) where_house_card,
t15.is_authenticity,
t15.evalu,
t15.is_coordination,
t15.contact_quality,
(CASE t14.couple_compensation WHEN '187' THEN '愿意' WHEN '188' THEN '不愿意' WHEN '189' THEN '' ELSE '请选择'  END) couple_compensation,
(CASE t14.parents_compensation WHEN '190' THEN '愿意' WHEN '191' THEN '不愿意' WHEN '192' THEN '' ELSE '请选择'  END)parents_compensation,
(CASE t14.children_compensation WHEN '193' THEN '愿意' WHEN '194' THEN '不愿意' WHEN '195' THEN '' ELSE '请选择'  END)children_compensation,
(CASE t14.couples_attitude WHEN '311' THEN '同意' WHEN '312' THEN '不同意' WHEN '313' THEN '不管' WHEN '314' THEN '' ELSE '请选择' END) couples_attitude,
(CASE t14.parents_attitude WHEN '311' THEN '同意' WHEN '312' THEN '不同意' WHEN '313' THEN '不管' WHEN '314' THEN '' ELSE '请选择' END) parents_attitude,
(CASE t14.children_attitude WHEN '311' THEN '同意' WHEN '312' THEN '不同意' WHEN '313' THEN '不管' WHEN '314' THEN '' ELSE '请选择' END) children_attitude,
t14.other_loan_num,
t14.other_loan_account,
t14.comp_eval,
t14.review_comments,
t16.phone1_2,
t16.phone1_3,
t16.phone2_2,
t16.phone2_3,
t16.phone1_1,
t16.phone2_1,
t16.contact_relation_description,
(CASE t14.ds_health_situation WHEN '315' THEN '存在重大疾病' WHEN '316' THEN '无疾病' ELSE '请选择' END) ds_health_situation,
(CASE t14.ds_repay_ability WHEN '305' THEN '优质' WHEN '306' THEN '较好' WHEN '307' THEN '一般' WHEN '308' THEN '较差' WHEN '309' THEN '' WHEN '310' THEN '' ELSE '请选择' END) ds_repay_ability
FROM mcs_cre_credit_head t1 
LEFT JOIN mcs_cre_credit_line_customer_change_head t2 ON t2.mcs_cre_credit_head_id=t1.mcs_cre_credit_head_id
LEFT JOIN (SELECT b.mcs_cre_credit_line_customer_change_head_id,group_concat(h.house_address_city,'') house_address_city,group_concat(h.house_address_district,'') house_address_district,group_concat(h.house_address_province,'') house_address_province,group_concat(h.house_building_area,'') house_building_area 
from mcs_cre_customer_change_line_houseinfo h 
left join mcs_cre_credit_line_customer_change_head b
on h.mcs_cre_credit_line_customer_change_head_id = b.mcs_cre_credit_line_customer_change_head_id
GROUP BY b.mcs_cre_credit_head_id) t6 ON t6.mcs_cre_credit_line_customer_change_head_id=t2.mcs_cre_credit_line_customer_change_head_id
LEFT JOIN mcs_cre_rev_info_main t8 ON t8.mcs_cre_credit_head_id=t1.mcs_cre_credit_head_id
LEFT JOIN mcs_cre_customer_change_line_workinfo t4 ON t4.mcs_cre_credit_line_customer_change_head_id=t2.mcs_cre_credit_line_customer_change_head_id
LEFT JOIN (SELECT co.mcs_cre_credit_line_customer_change_head_id, REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(co.comp_industry,'jtysy','交通运输业'),'pflsy','批发零售业'),'fwy','服务业'),'jzy','建筑业'),'ny','农业'),'qt','其他') AS comp_industry FROM mcs_cre_customer_change_line_company co) t5 ON t5.mcs_cre_credit_line_customer_change_head_id=t2.mcs_cre_credit_line_customer_change_head_id
LEFT JOIN (SELECT r.mcs_cre_credit_head_id, REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE((SELECT GROUP_CONCAT(re.original_borrower_record,'') FROM mcs_cre_rev_borrower_record re WHERE mcs_cre_credit_head_id=r.mcs_cre_credit_head_id ),'333','优质'),'334','较好'),'335','一般'),'336','较差'),'337','极差'),'-1','请选择') original_borrower_record FROM mcs_cre_rev_borrower_record r WHERE r.mcs_cre_credit_head_id=r.mcs_cre_credit_head_id) t7 ON t7.mcs_cre_credit_head_id=t1.mcs_cre_credit_head_id
LEFT JOIN (SELECT c.mcs_cre_credit_head_id,GROUP_CONCAT(c.processing_form,'') processing_form,GROUP_CONCAT(involve_problem,'') involve_problem from mcs_cre_rev_info_criminal c GROUP BY c.mcs_cre_credit_head_id) t9 ON t9.mcs_cre_credit_head_id=t1.mcs_cre_credit_head_id
LEFT JOIN (SELECT a.mcs_cre_credit_head_id,group_concat(execute_target,'') execute_target FROM mcs_cre_rev_info_court_case a group by a.mcs_cre_credit_head_id) t10 ON t10.mcs_cre_credit_head_id=t1.mcs_cre_credit_head_id
LEFT JOIN mcs_cre_rev_water_model t12 ON t12.mcs_cre_credit_head_id=t1.mcs_cre_credit_head_id
LEFT JOIN mcs_cre_rev_certificate_model t13 ON t13.mcs_cre_credit_head_id=t1.mcs_cre_credit_head_id
LEFT JOIN mcs_cre_rev_phone_main t14 ON t14.mcs_cre_credit_head_id=t1.mcs_cre_credit_head_id
LEFT JOIN (SELECT DISTINCT r.mcs_cre_credit_head_id,REPLACE(REPLACE(REPLACE(REPLACE((SELECT GROUP_CONCAT(t.is_authenticity,'') FROM mcs_cre_rev_phone_contact t WHERE t.mcs_cre_credit_head_id=r.mcs_cre_credit_head_id),'-1','请选择'),'245','真实'),'246','虚假'),'247','未接通') is_authenticity,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE((SELECT GROUP_CONCAT(ev.evalu,'') FROM mcs_cre_rev_phone_contact ev WHERE ev.mcs_cre_credit_head_id=r.mcs_cre_credit_head_id),',','请选择,'),'1','请选择'),'2','较好'),'3','一般'),'4','较差'),'5','未接通'),'6','') evalu,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE((SELECT GROUP_CONCAT(co.is_coordination,'') FROM mcs_cre_rev_phone_contact co WHERE co.mcs_cre_credit_head_id=r.mcs_cre_credit_head_id),',','请选择'),'1','配合'),'2','不配合'),'3','未接通'),'4','') is_coordination,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE((SELECT GROUP_CONCAT(att.family_attitude,'') FROM mcs_cre_rev_phone_contact att WHERE att.mcs_cre_credit_head_id=r.mcs_cre_credit_head_id),',','请选择'),'1','同意'),'2','不同意'),'3','不管'),'4','')family_attitude,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE((SELECT GROUP_CONCAT(qu.contact_quality,'') FROM mcs_cre_rev_phone_contact qu WHERE qu.mcs_cre_credit_head_id=r.mcs_cre_credit_head_id),',','请选择,'),'1','优质'),'2','较好'),'3','一般'),'4','较差'),'5','未接通'),'6','') contact_quality FROM mcs_cre_rev_phone_contact r WHERE r.mcs_cre_credit_head_id=r.mcs_cre_credit_head_id GROUP BY r.mcs_cre_credit_head_id) t15 ON t15.mcs_cre_credit_head_id=t1.mcs_cre_credit_head_id
LEFT JOIN (SELECT c.is_major AS is_major,c.mcs_cre_credit_head_id,c.mcs_cre_credit_line_customer_change_head_id,GROUP_CONCAT(c.phone1_1,'') phone1_1,GROUP_CONCAT(c.phone1_2) phone1_2,GROUP_CONCAT(c.phone1_3) phone1_3,GROUP_CONCAT(c.phone2_1) phone2_1,GROUP_CONCAT(c.phone2_2) phone2_2,GROUP_CONCAT(c.phone2_3) phone2_3,GROUP_CONCAT(contact_relation_description,'') contact_relation_description FROM mcs_cre_customer_change_line_contact c WHERE is_major=1  AND mcs_cre_credit_head_id=c.mcs_cre_credit_head_id GROUP BY c.mcs_cre_credit_head_id) t16 ON t16.mcs_cre_credit_head_id=t1.mcs_cre_credit_head_id  
where t2.is_major='1' AND t2.enable_flag='1' AND t1.mcs_cre_credit_head_id='972';
SELECT DISTINCT
    t1.mcs_cre_credit_head_id,
    t2.mcs_cre_credit_line_customer_change_head_id,
    t1.bill_code,
    t2.customer_code,
    t2.customer_name,
    (
        CASE t2.has_married
        WHEN 'wh' THEN
            '未婚'
        WHEN 'yh' THEN
            '已婚'
        WHEN 'ly' THEN
            '离异'
        WHEN 'so' THEN
            '丧偶'
        ELSE
            ''
        END
    ) has_married,
    (
        CASE t2.gender
        WHEN '1' THEN
            ''
        WHEN '0' THEN
            ''
        ELSE
            ''
        END
    ) AS gender,
    (
        CASE t2.max_degree
        WHEN '1' THEN
            '初中及一下'
        WHEN '2' THEN
            '高中'
        WHEN '3' THEN
            '专科'
        WHEN '4' THEN
            '本科'
        WHEN '5' THEN
            '硕士及以上'
        WHEN '0' THEN
            ''
        END
    ) max_degree,
    (
        CASE t4.work_unit_property
        WHEN 'gy' THEN
            '国营'
        WHEN 'my' THEN
            '民营'
        WHEN 'sy' THEN
            '私营'
        WHEN 'sz' THEN
            '三资'
        WHEN 'hh' THEN
            '合伙'
        WHEN 'gt' THEN
            '个体'
        WHEN 'qt' THEN
            '其他'
        ELSE
            ''
        END
    ) work_unit_property,
    t5.comp_industry,
    t4.work_unit_duty,
    t6.house_address_city,
    t6.house_address_district,
    t6.house_address_province,
    t6.house_building_area,
    t8.rev_contact_number,
    (
        CASE t8.credit_record_type
        WHEN '1' THEN
            ''
        WHEN '0' THEN
            ''
        ELSE
            ''
        END
    ) AS credit_record_type,
    (
        CASE t8.rev_outstanding_loan
        WHEN '331' THEN
            ''
        WHEN '332' THEN
            ''
        ELSE
            ''
        END
    ) rev_outstanding_loan,
    t7.original_borrower_record,
    (
        CASE t9.processing_form
        WHEN '320' THEN
            '罚款'
        WHEN '321' THEN
            '拘役管制'
        WHEN '322' THEN
            '劳动教养'
        WHEN '323' THEN
            '刑罚'
        ELSE
            ''
        END
    ) AS processing_form,
    (
        CASE t9.involve_problem
        WHEN '317' THEN
            '不良行为'
        WHEN '319' THEN
            '刑事案件'
        WHEN '318' THEN
            '人身伤害'
        ELSE
            ''
        END
    ) AS involve_problem,
    t10.execute_target,
    (
        CASE t1.hasconmpre
        WHEN '302' THEN
            '单人贷'
        WHEN '303' THEN
            '共同2人'
        WHEN '304' THEN
            '3人以上'
        ELSE
            ''
        END
    ) hasconmpre,
    (
        CASE t1.cre_loan_type
        WHEN '110' THEN
            '佳英贷'
        WHEN '111' THEN
            '佳楼贷'
        WHEN '112' THEN
            '佳薪贷'
        WHEN '113' THEN
            '佳业贷'
        ELSE
            ''
        END
    ) cre_loan_type,
    t1.credit_limit,
    t2.birthday,
    t2.id_card,
    t12.aver_balance,
    t12.aver_payment,
    t12.month_payment,
    t13.unpay_loan_amount,
    t13.unpay_loan_num,
    t13.unpay_loan_balance,
    t13.credit_card_total_amount,
    t13.credit_card_most_amount,
    t13.credit_have_amount,
    t13.three_overdue_card_num,
    t13.six_overdue_card_num,
    t13.one_year_overdue_rate,
    t13.two_year_overdue_rate,
    t13.cur_overdue_card_amount,
    t13.three_apply_time,
    t13.six_apply_time,
    t13.year_apply_time,
    t13.guarantee_amount,
    (
        CASE t13.ecurity_state
        WHEN '287' THEN
            '正常'
        WHEN '288' THEN
            '关注'
        WHEN '289' THEN
            '次级'
        WHEN '290' THEN
            '可疑'
        WHEN '291' THEN
            '损失'
        ELSE
            ''
        END
    ) ecurity_state,
    t1.credit_purpose,
    (
        CASE t14.borrower_quality
        WHEN '179' THEN
            '优质'
        WHEN '180' THEN
            '较好'
        WHEN '181' THEN
            '一般'
        WHEN '182' THEN
            '较差'
        ELSE
            ''
        END
    ) borrower_quality,
    t14.max_repayment_limit_per_month,
    (
        CASE t14.where_house_card
        WHEN '1' THEN
            '房产局'
        WHEN '2' THEN
            '本人'
        WHEN '3' THEN
            '调档'
        WHEN '4' THEN
            '银行'
        WHEN '5' THEN
            '未下来'
        ELSE
            ''
        END
    ) where_house_card,
    splitStr(t15.is_authenticity,',',1) as ceshi1,
    splitStr(t15.is_authenticity,',',2) as ceshi2,
    splitStr(t15.is_authenticity,',',3) as ceshi3,
    splitStr(t15.is_authenticity,',',4) as ceshi4,
    splitStr(t15.is_authenticity,',',5) as ceshi5,
    splitStr(t15.is_authenticity,',',6) as ceshi6,
    t15.is_authenticity,
    t15.evalu,
    t15.is_coordination,
    t15.contact_quality,
    (
        CASE t14.couple_compensation
        WHEN '187' THEN
            '愿意'
        WHEN '188' THEN
            '不愿意'
        WHEN '189' THEN
            ''
        ELSE
            ''
        END
    ) couple_compensation,
    (
        CASE t14.parents_compensation
        WHEN '190' THEN
            '愿意'
        WHEN '191' THEN
            '不愿意'
        WHEN '192' THEN
            ''
        ELSE
            ''
        END
    ) parents_compensation,
    (
        CASE t14.children_compensation
        WHEN '193' THEN
            '愿意'
        WHEN '194' THEN
            '不愿意'
        WHEN '195' THEN
            ''
        ELSE
            ''
        END
    ) children_compensation,
    (
        CASE t14.couples_attitude
        WHEN '311' THEN
            '同意'
        WHEN '312' THEN
            '不同意'
        WHEN '313' THEN
            '不管'
        WHEN '314' THEN
            ''
        ELSE
            ''
        END
    ) couples_attitude,
    (
        CASE t14.parents_attitude
        WHEN '311' THEN
            '同意'
        WHEN '312' THEN
            '不同意'
        WHEN '313' THEN
            '不管'
        WHEN '314' THEN
            ''
        ELSE
            ''
        END
    ) parents_attitude,
    (
        CASE t14.children_attitude
        WHEN '311' THEN
            '同意'
        WHEN '312' THEN
            '不同意'
        WHEN '313' THEN
            '不管'
        WHEN '314' THEN
            ''
        ELSE
            ''
        END
    ) children_attitude,
    t14.other_loan_num,
    t14.other_loan_account,
    t14.comp_eval,
    t14.review_comments,
    t16.phone1_2,
    t16.phone1_3,
    t16.phone2_2,
    t16.phone2_3,
    t16.phone1_1,
    t16.phone2_1,
    t16.contact_relation_description,
    (
        CASE t14.ds_health_situation
        WHEN '315' THEN
            '存在重大疾病'
        WHEN '316' THEN
            '无疾病'
        ELSE
            ''
        END
    ) ds_health_situation,
    (
        CASE t14.ds_repay_ability
        WHEN '305' THEN
            '优质'
        WHEN '306' THEN
            '较好'
        WHEN '307' THEN
            '一般'
        WHEN '308' THEN
            '较差'
        WHEN '309' THEN
            ''
        WHEN '310' THEN
            ''
        ELSE
            ''
        END
    ) ds_repay_ability
FROM
    mcs_cre_credit_head t1
LEFT JOIN mcs_cre_credit_line_customer_change_head t2 ON t2.mcs_cre_credit_head_id = t1.mcs_cre_credit_head_id
LEFT JOIN (
    SELECT
        b.mcs_cre_credit_line_customer_change_head_id,
        group_concat(h.house_address_city, '') house_address_city,
        group_concat(
            h.house_address_district,
            ''
        ) house_address_district,
        group_concat(
            h.house_address_province,
            ''
        ) house_address_province,
        group_concat(h.house_building_area, '') house_building_area
    FROM
        mcs_cre_customer_change_line_houseinfo h
    LEFT JOIN mcs_cre_credit_line_customer_change_head b ON h.mcs_cre_credit_line_customer_change_head_id = b.mcs_cre_credit_line_customer_change_head_id
    GROUP BY
        b.mcs_cre_credit_head_id
) t6 ON t6.mcs_cre_credit_line_customer_change_head_id = t2.mcs_cre_credit_line_customer_change_head_id
LEFT JOIN mcs_cre_rev_info_main t8 ON t8.mcs_cre_credit_head_id = t1.mcs_cre_credit_head_id
LEFT JOIN mcs_cre_customer_change_line_workinfo t4 ON t4.mcs_cre_credit_line_customer_change_head_id = t2.mcs_cre_credit_line_customer_change_head_id
LEFT JOIN (
    SELECT
        co.mcs_cre_credit_line_customer_change_head_id,
        co.comp_industry AS comp_industry
    FROM
        mcs_cre_customer_change_line_company co
) t5 ON t5.mcs_cre_credit_line_customer_change_head_id = t2.mcs_cre_credit_line_customer_change_head_id
LEFT JOIN (
    SELECT
        r.mcs_cre_credit_head_id,
        (
            SELECT
                GROUP_CONCAT(
                    re.original_borrower_record,
                    ''
                )
            FROM
                mcs_cre_rev_borrower_record re
            WHERE
                mcs_cre_credit_head_id = r.mcs_cre_credit_head_id
        ) original_borrower_record
    FROM
        mcs_cre_rev_borrower_record r
    WHERE
        r.mcs_cre_credit_head_id = r.mcs_cre_credit_head_id
) t7 ON t7.mcs_cre_credit_head_id = t1.mcs_cre_credit_head_id
LEFT JOIN (
    SELECT
        c.mcs_cre_credit_head_id,
        GROUP_CONCAT(c.processing_form, '') processing_form,
        GROUP_CONCAT(involve_problem, '') involve_problem
    FROM
        mcs_cre_rev_info_criminal c
    GROUP BY
        c.mcs_cre_credit_head_id
) t9 ON t9.mcs_cre_credit_head_id = t1.mcs_cre_credit_head_id
LEFT JOIN (
    SELECT
        a.mcs_cre_credit_head_id,
        group_concat(execute_target, '') execute_target
    FROM
        mcs_cre_rev_info_court_case a
    GROUP BY
        a.mcs_cre_credit_head_id
) t10 ON t10.mcs_cre_credit_head_id = t1.mcs_cre_credit_head_id
LEFT JOIN mcs_cre_rev_water_model t12 ON t12.mcs_cre_credit_head_id = t1.mcs_cre_credit_head_id
LEFT JOIN mcs_cre_rev_certificate_model t13 ON t13.mcs_cre_credit_head_id = t1.mcs_cre_credit_head_id
LEFT JOIN mcs_cre_rev_phone_main t14 ON t14.mcs_cre_credit_head_id = t1.mcs_cre_credit_head_id
LEFT JOIN (
    SELECT DISTINCT
                t.mcs_cre_credit_head_id,GROUP_CONCAT(t.is_authenticity, '') is_authenticity,GROUP_CONCAT(t.evalu, '') evalu,GROUP_CONCAT(t.is_coordination,'') is_coordination,GROUP_CONCAT(t.family_attitude,'') family_attitude,GROUP_CONCAT(contact_quality,'') contact_quality
            FROM
                mcs_cre_rev_phone_contact t
    WHERE
        t.mcs_cre_credit_head_id =mcs_cre_credit_head_id
    GROUP BY
        t.mcs_cre_credit_head_id
) t15 ON t15.mcs_cre_credit_head_id = t1.mcs_cre_credit_head_id
LEFT JOIN (
    SELECT
        c.is_major AS is_major,
        c.mcs_cre_credit_head_id,
        c.mcs_cre_credit_line_customer_change_head_id,
        GROUP_CONCAT(c.phone1_1, '') phone1_1,
        GROUP_CONCAT(c.phone1_2) phone1_2,
        GROUP_CONCAT(c.phone1_3) phone1_3,
        GROUP_CONCAT(c.phone2_1) phone2_1,
        GROUP_CONCAT(c.phone2_2) phone2_2,
        GROUP_CONCAT(c.phone2_3) phone2_3,
        GROUP_CONCAT(
            contact_relation_description,
            ''
        ) contact_relation_description
    FROM
        mcs_cre_customer_change_line_contact c
    WHERE
        is_major = 1
    AND mcs_cre_credit_head_id = c.mcs_cre_credit_head_id
    GROUP BY
        c.mcs_cre_credit_head_id
) t16 ON t16.mcs_cre_credit_head_id = t1.mcs_cre_credit_head_id
WHERE
    t2.is_major = '1'
AND t2.enable_flag = '1'
AND t1.mcs_cre_credit_head_id IN (1004, 967, 972, 971, 966);

创建函数:

CREATE FUNCTION splitStr(str VARCHAR(200),rep VARCHAR(200),num INT) RETURNS VARCHAR(200)
BEGIN
    DECLARE substr VARCHAR(200);
    DECLARE resultStr VARCHAR(200);
    SET substr = SUBSTRING_INDEX(str,rep,num);
    SET resultStr = SUBSTRING_INDEX(substr,rep,-1);
    RETURN resultStr;
END;

 oracle分页:

SELECT * FROM
(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
)
WHERE RN BETWEEN (pageNum-1)*pageSize+1 AND pageNum*pageSize

CONCAT()函数的使用方法:CONCAT()函数是连接字符串,某字段连接某字段或者连接某格式的字符串

eg: select * from user;

result:

id    name  sex

1      张三    1

2      李四    0

使用concat()函数时:

select concat(name,'(',sex,')') as obj from user;

result:

obj

张三(1)

李四(0)

还可以这样做查询

SELECT CONCAT(user_name,',') as obj from user;

result:

obj

张三,

李四,

-- 求某科分数的平均分和及格率,涨姿势了!及格率=及格总人数/总人数*100

SELECT * FROM (
		SELECT
			avg(score) AS '英语平均成绩',
			(sum(
				CASE
				WHEN score >= 60 THEN
					1
				ELSE
					0
				END
			) / COUNT(*))*100 AS '英语及格率'
		FROM
			SC
	) a;

  

 MySQL查询时,请尽量少用子查询,子查询较多时请用联合查询,可以有40多秒的速度变成1秒不到。例如以下例子:

40秒的sql写法:

SELECT
	f.id AS ryid,
	f.dtrymc,
	m.hdbt,
	LEFT (y.hdkssj, 10) hdkssj,
	LEFT (y.hdjssj, 10) hdjssj,
	(
		SELECT
			count(1)
		FROM
			shop_order
		WHERE
			promoterid = f.id
		AND orderstatus = '5'
		AND createtime >= '2016-06-17 00:00:00'
		AND createtime <= '2016-06-29 16:43:44'
	) AS orderNums,
	(
		SELECT
			sum(yjyds)
		FROM
			shop_order_goodmsg a,
			shop_order b
		WHERE
			a.orderid = b.id
		AND b.promoterid = f.id
		AND b.orderstatus = '5'
		AND b.createtime >= '2016-06-17 00:00:00'
		AND b.createtime <= '2016-06-29 16:43:44'
	) AS tranNums,
	(
		SELECT
			count(1)
		FROM
			shop_dthd_lljl z
		WHERE
			z.ryid = f.id
	) AS browseNums
FROM
	shop_dtfzb_ry f
JOIN shop_dthd_dtry x ON f.id = x.ryid
JOIN shop_dthd y ON x.dthdid = y.id
JOIN shop_activey m ON y.activeyid = m.id
JOIN shop_order g ON g.promoterid = f.id
WHERE
	1 = 1
and g.createtime >= '2016-06-17 00:00:00'
		AND g.createtime <= '2016-06-29 16:43:44'
GROUP BY
	f.dtrymc,
	m.hdbt,
	y.hdkssj,
	y.hdjssj
ORDER BY
	m.hdbt
LIMIT 0,
 20;

  优化后使用联合查询后变化的sql:

SELECT
    f.id AS ryid,
    f.dtrymc,
    m.hdbt,
    LEFT (y.hdkssj, 10) hdkssj,
    LEFT (y.hdjssj, 10) hdjssj,
    s.orderNums,
    p.tranNums,
    z.browseNums
FROM
    shop_dtfzb_ry f
JOIN shop_dthd_dtry x ON f.id = x.ryid
JOIN shop_dthd y ON x.dthdid = y.id
JOIN shop_activey m ON y.activeyid = m.id
left JOIN shop_order g ON g.promoterid = f.id
left join (
        SELECT
            count(1) orderNums,promoterid,activeyid
        FROM
            shop_order
        WHERE orderstatus = '5'
        AND createtime >= '2016-06-17 00:00:00'
        AND createtime <= '2016-06-29 16:43:44'
group by promoterid,activeyid
    ) s on y.activeyid=s.activeyid and f.id=s.promoterid
left JOIN
(
        SELECT
            sum(yjyds) tranNums,promoterid,a.activeyid
        FROM
            shop_order_goodmsg a,
            shop_order b
        WHERE
            a.orderid = b.id
        AND b.orderstatus = '5'
        AND b.createtime >= '2016-06-17 00:00:00'
        AND b.createtime <= '2016-06-29 16:43:44'
group by promoterid,activeyid
    ) p on y.activeyid=p.activeyid and f.id=p.promoterid
 left join (
        SELECT
            count(1) browseNums,ryid
        FROM
            shop_dthd_lljl z
where 1=1 and llsj >= '2016-06-17 00:00:00'
        AND llsj <= '2016-06-29 16:43:44'
        group by ryid
    ) z on z.ryid = f.id
WHERE
    1 = 1
and g.createtime >= '2016-06-17 00:00:00'
        AND g.createtime <= '2016-06-29 16:43:44'
GROUP BY
    f.dtrymc,
    m.hdbt,
    y.hdkssj,
    y.hdjssj
ORDER BY
    m.hdbt
LIMIT 0,
 20;

变化惊人,只怪自己太年轻。

查询表里重复的记录:

 select count(*) as count from shop_order group by phonenum having count>1;

 exists的运用

SQL查询

 mysql 加上一天 date_add(now(),interval 1 day);     date_add(now(),interval -1 day)减去一天

减去一天还有一个函数:date_sub(now(),interval 1 day) ;day换成month表示月,year为年,week为周

mysql查询数据库数据大小

select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,
concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size
from information_schema.tables
group by TABLE_SCHEMA
order by data_length desc;

mysql 时间段查询

SELECT
*
FROM
table_name
WHERE 1=1
AND STARTDATE <= '2019-12-30'
AND ENDDATE >= '2019-06-21'

无理由。