-1

我的列地址如下所示:

address
--------------
Virginia Ave
Baker Ave
Elm Road
.....

我需要将每条记录分成 2 列。第一列将包含街道名称,第二列是街道缩写,因此它看起来像这样:

StreetName          StreetAbbr
-----------       -----------
Virginia             Ave
Baker                Ave
Elm                 Road

这样做最简单、最有效(我有大量记录)是什么?

谢谢。

4

1 回答 1

1

假设字符串是StreetName StreetAbbr,下面的 sql 代码可能对你有用,我不确定这是最有效的,但可以工作:

CREATE TABLE TEST(
  ADDRESS VARCHAR(100));

INSERT INTO TEST(ADDRESS) VALUES('Virginia Ave');
INSERT INTO TEST(ADDRESS) VALUES('Baker Ave');
INSERT INTO TEST(ADDRESS) VALUES('Elm Road');

SELECT 
(string_to_array(ADDRESS, ' '))[1] AS StreetName,
(string_to_array(ADDRESS, ' '))[2] AS StreetAbbr
FROM TEST;

这是示例的链接。您也可以使用正则表达式或字符串简单函数来执行此操作(请参阅此链接)。无论如何,在做这一切之前,你会想到normalization

于 2013-06-30T16:55:52.217 回答