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