PostgreSQL在Update时使用Substring函数截取字符串并且加上CASE WHEN THEN条件判断


--更新
UPDATE wp_order_detail
SET layout_type = (
    SELECT
        CASE
    WHEN CHAR_LENGTH (cs.size_code) >= 6 THEN
        SUBSTRING (cs.size_code FROM 1 FOR 3)
    ELSE
        ''
    END
    FROM
        wp_catalog_size cs
    WHERE
        cs.size_code LIKE '%' || wp_order_detail.size_code
    LIMIT 1
);

--查询
SELECT
    detail.ID,
    detail.size_code,
    (
        SELECT
            cs.size_code
        FROM
            wp_catalog_size cs
        WHERE
            cs.size_code LIKE '%' || detail.size_code
        LIMIT 1
    ) AS size_code_2,
    detail.layout_type
FROM
    wp_order_detail detail;

 

大体意思就是用wp_order_detail表的size_code模糊匹配wp_catalog_size表的size_code。

匹配到后,判断是否大于等于6位,如果时6位,截取前3位,赋值给layout_type,否则直接赋空值。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM