2017-05-04 26 views
0

我正在寫一個簡單的postgres user_func來查找並返回給定狀態代碼和縣名稱的FIPS代碼。Postgresql user_function與字符串輸入

CREATE OR REPLACE FUNCTION get_fips(state_code varchar, county_name varchar) RETURNS varchar AS $$ 
SELECT concat(statefp, countyfp) FROM fips 
    WHERE state = state_code AND county LIKE county_name+'%'; 
$$ LANGUAGE SQL; 

fips表中,列county有時有縣名(如Maricopa CountyMaricopa Cty)後額外的東西。我將只通過Maricopa,所以我需要使用LIKE我假設。

我試過AND county LIKE county_name+'%';幾種方法,但不斷收到語法錯誤。有沒有辦法做到這一點?

回答

0

在Postgres的連接操作符是||(未+),所以:

WHERE state = state_code AND county LIKE county_name || '%';