鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 数据库 > SQLite > >

PostgreSQL在Update时使用Substring函数截取字符串并且加上CASE

来源:互联网 作者:佚名 时间:2017-09-03 11:01
-- 更新 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 L
--更新
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,否则直接赋空值。

网友评论
<