我的列地址如下所示:
address
--------------
Virginia Ave
Baker Ave
Elm Road
.....
我需要将每个记录分成2列。第一列将保留街道名称,第二列是街道缩写,所以它将如下所示:
StreetName StreetAbbr
----------- -----------
Virginia Ave
Baker Ave
Elm Road
什么是最简单,最有效的(我有大量的记录) 这样做?
感谢。
答案 0 :(得分: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;
以下是带有示例的LINK。您也可以使用正则表达式或字符串简单函数(请参阅此link)。无论如何,在做这一切之前,你会想到规范化。