PostgreSQL中Varchar轉化為int4的語句

來源:互聯網
上載者:User

    今天很鬱悶。

    國家基礎地理資料的shp檔案中,省級資料的adcodd99為int型的,我匯入到PostgreSQL中,成為int4類型。

    但是區縣級資料的adcodd99為字元型的,匯入到資料庫中,成了varchar。查詢了PostgreSQL文檔,沒發現直接將字串轉化為數的函數。一番研究發現,可以用它提供的一堆字串函數的組合來進行轉化。資料表為geo_country_poly。我在其中建立了一列int4型的adcodd99_int。運行以下sql語句就可以進行轉化:

update geo_country_poly set adcodd99_int=
100000*(ascii(substring(adcode99 from 1 for 1))-48) +
10000*(ascii(substring(adcode99 from 2 for 1))-48) +
1000*(ascii(substring(adcode99 from 3 for 1))-48) +
100*(ascii(substring(adcode99 from 4 for 1))-48) +
10*(ascii(substring(adcode99 from 5 for 1))-48) +
1*(ascii(substring(adcode99 from 6 for 1))-48)

註:

函數 傳回型別 描述 例子 結果
ascii(text) integer 參數第一個字元的 ASCII 碼 ascii('x') 120
substring(string [from integer] [for integer]) text 抽取子字串 substring('Thomas' from 2 for 3) trim
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.