Postgresql之split_part()切割函数

一、前言

数据库表字段有一个格式是:1|2|3.以竖线分割的,现在想取其中的第2个,pg提供这样的函数,记录如下,以下是我的SQL。

二、代码

SELECT COUNT
                   (*)                              AS "count",
               split_part(tree_t.node_path, '|', 2) AS "id",
               name_t.node_name                     AS "type"
        FROM datsvc_data_standard_t sd_t
                 INNER JOIN datsvc_tree_t tree_t ON tree_t."id" = sd_t.tree_category
                 INNER JOIN datsvc_tree_t name_t ON name_t."id" :: VARCHAR = split_part(tree_t.node_path, '|', 2)
        WHERE tree_t."type" = 2
        GROUP BY split_part(tree_t.node_path, '|', 2),
                 name_t.node_name

三、分析

split_part(string text, delimiter text2, field int)

text要切割的字段; text2按照什么形式切割 int截取的位置

ps:
text=“a.b.c” split_part(text,’.’,1) 结果: a
text=“a.b.c” split_part(text,’.’,2) 结果: b
text=“a.b.c” split_part(text,’.’,3) 结果: c

猜你喜欢

转载自blog.csdn.net/BeiisBei/article/details/108449986
今日推荐