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

时间:2022-07-02 03:42:08
--更新
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;

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

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

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