Fork me on GitHub

[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,否则直接赋空值。

posted @ 2017-06-30 16:28  VAllen  阅读(4842)  评论(0编辑  收藏  举报