gpt4 book ai didi

sql - 使用 PostgreSQL 剪切部分字符串

转载 作者:行者123 更新时间:2023-11-29 14:10:10 26 4
gpt4 key购买 nike

我有一个独特的案例,我必须根据文本字段连接两个表。 (我知道这很糟糕)

问题是一张表中的连接列是:

A 列

Amz-g-r-t
Amz-g-r2-t
Amz-g1-r-t-x

在第二个表中,该列可能在同一行中包含更多值:

B列

Amz-g-r-t not to ship
Amz-g-r2-t OK
Amz-g1-r-t-x

基本上我想做的是:

select *
from A
join B on (a.ColumnA=b.ColumnB)

但由于B中的数据,它不会起作用。所以我需要一种方法来删除第一个空格后 B 行中的所有字符。所以 ColumnB 将是:

Amz-g-r-t
Amz-g-r2-t
Amz-g1-r-t-x

我该怎么做?

最佳答案

您可以使用 split_part()功能。

select *
from A
join B on a.ColumnA=split_part(b.ColumnB, ' ', 1)

split_part(string text, delimiter text, field int) Split string ondelimiter and return the given field (counting from one)

性能会很差,不仅因为列是文本类型,而且因为在连接列上使用函数使得查询Non - SARGABLE

关于sql - 使用 PostgreSQL 剪切部分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41160147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com