congky

f_get_formatted_address

Nov 2nd, 2017
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE FUNCTION f_get_formatted_address(bigint)
  2.   RETURNS character varying AS
  3. $BODY$
  4. DECLARE
  5.     pId                 alias for $1;
  6.    
  7.     vResult             character varying;
  8. BEGIN
  9.  
  10.     vResult := '';
  11.  
  12.     IF EXISTS(SELECT 1 FROM m_partner_address A WHERE A.partner_address_id = pId) THEN
  13.         SELECT CASE WHEN regexp_replace(A.address1, '(\s*|-)', '', 'g') != '' AND (regexp_replace(A.address2, '(\s*|-)', '', 'g') != '' OR regexp_replace(A.address3, '(\s*|-)', '', 'g') != '')
  14.                     THEN A.address1 ||', '
  15.                     WHEN regexp_replace(A.address1, '(\s*|-)', '', 'g') = ''
  16.                     THEN ''
  17.                     ELSE A.address1
  18.                 END ||
  19.                 CASE WHEN regexp_replace(A.address2, '(\s*|-)', '', 'g') != '' AND regexp_replace(A.address3, '(\s*|-)', '', 'g') != ''
  20.                     THEN A.address2 ||', '
  21.                     WHEN regexp_replace(A.address2, '(\s*|-)', '', 'g') = ''
  22.                     THEN ''
  23.                     ELSE A.address2
  24.                 END ||
  25.                 CASE WHEN regexp_replace(A.address3, '(\s*|-)', '', 'g') = ''
  26.                     THEN ''
  27.                     ELSE A.address3
  28.                 END AS address INTO vResult
  29.         FROM m_partner_address A
  30.         WHERE A.partner_address_id = pId;
  31.     END IF;
  32.                    
  33.     return vResult;
  34. END;
  35. $BODY$
  36.   LANGUAGE plpgsql VOLATILE
  37.   COST 100;
Advertisement
Add Comment
Please, Sign In to add comment