الاسم
standardize_address — تُعيد صيغة stdaddr لعنوان مُدخل باستخدام جداول lex وgaz والقواعد.
المختصر
stdaddr standardize_address(text lextab, text gaztab, text rultab, text address);
stdaddr standardize_address(text lextab, text gaztab, text rultab, text micro, text macro);
الوصف
تُعيد صيغة stdaddr لعنوان مُدخل باستخدام اسم جدول lex table وأسماء جداول gaz table وrules table وعنوان.
الصيغة 1: تأخذ العنوان كسطر واحد.
الصيغة 2: تأخذ العنوان في جزأين: micro يتكون من السطر الأول القياسي للعنوان البريدي، مثل house_num street، وmacro يتكون من السطر الثاني القياسي للعنوان البريدي، مثل city, state postal_code country.
متاحة منذ: 2.2.0
تتطلب هذه الدالة الامتداد address_standardizer.
أمثلة
باستخدام امتداد address_standardizer_data_us
CREATE EXTENSION address_standardizer_data_us; -- only needs to be done once
الصيغة 1: عنوان أحادي السطر. لا تعمل جيدًا مع العناوين غير الأمريكية
SELECT house_num, name, suftype, city, country, state, unit FROM standardize_address('us_lex',
'us_gaz', 'us_rules', 'One Devonshire Place, PH 301, Boston, MA 02109');
house_num | name | suftype | city | country | state | unit ----------+------------+---------+--------+---------+---------------+----------------- 1 | DEVONSHIRE | PLACE | BOSTON | USA | MASSACHUSETTS | # PENTHOUSE 301
باستخدام الجداول المحزَّمة مع مُرمِّز tiger الجغرافي. لا يعمل هذا المثال إلا إذا كنت قد ثبّتّ postgis_tiger_geocoder.
SELECT * FROM standardize_address('tiger.pagc_lex',
'tiger.pagc_gaz', 'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA 02109-1234');
لتسهيل القراءة سنعرض المخرجات باستخدام امتداد hstore، ويلزمك تثبيته بـ CREATE EXTENSION hstore;
SELECT (each(hstore(p))).*
FROM standardize_address('tiger.pagc_lex', 'tiger.pagc_gaz',
'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA 02109') As p;
key | value
------------+-----------------
box |
city | BOSTON
name | DEVONSHIRE
qual |
unit | # PENTHOUSE 301
extra |
state | MA
predir |
sufdir |
country | USA
pretype |
suftype | PL
building |
postcode | 02109
house_num | 1
ruralroute |
(16 rows)
الصيغة 2: كعنوان من جزأين
SELECT (each(hstore(p))).*
FROM standardize_address('tiger.pagc_lex', 'tiger.pagc_gaz',
'tiger.pagc_rules', 'One Devonshire Place, PH 301', 'Boston, MA 02109, US') As p;
key | value ------------+----------------- box | city | BOSTON name | DEVONSHIRE qual | unit | # PENTHOUSE 301 extra | state | MA predir | sufdir | country | USA pretype | suftype | PL building | postcode | 02109 house_num | 1 ruralroute | (16 rows)
انظر أيضًا
stdaddr، rules table، lex table، gaz table، Pagc_Normalize_Address