PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да конвертирате низ в числова стойност в PostgreSQL

Проблем:

Искате да преобразувате низ в десетична стойност в PostgreSQL.

Нека преобразуваме стойността в низ в DECIMAL тип данни.

Решение 1:

Ще използваме оператора ::. Ето заявката, която бихте написали:

SELECT ' 5800.79 '::DECIMAL;

Ето резултата:

числово
5800,79

Както забелязвате, началните и крайните интервали бяха премахнати.

Дискусия:

Използвайте оператора ::, за да преобразувате низове, съдържащи числови стойности, в тип данни DECIMAL. В нашия пример преобразувахме низа „5800.79“ в 5800.79 (ДЕСИЧНА стойност).

Този оператор се използва за преобразуване между различни типове данни. Той е много популярен в PostgreSQL. Можете също да използвате стандартния SQL оператор, CAST() , вместо :: оператор.

Решение 2:

SELECT CAST(' 5800.79 ' AS DECIMAL );

Ето резултата:

числово
5800,79

Забележете, че CAST() , като :: оператор, премахва допълнителни интервали в началото и края на низа, преди да го преобразува в число.

Базата данни PostgreSQL предоставя още един начин за конвертиране. Използвайте TO_NUMBER() функция, ако трябва да конвертирате по-сложни низове. Тази функция приема два аргумента:низът за преобразуване и форматната маска, която показва как трябва да се интерпретира всеки знак в низа. Вижте примера по-долу:

Решение 3:

SELECT TO_NUMBER(' 5 800,79- ', 'FM9G999D99S' );

Ето резултата:

числово
-5800,79

Форматният низ описва низа, съдържащ числото (входна стойност като низ). В този пример тази маска съдържа символа „FM“, който премахва началните и крайните интервали. „9“ обозначава една цифра (в нашия пример 5), а „G“ представлява група от цифри (в нашия пример един интервал показва група от хиляди).

След това „999“ показва още три цифри (800).

Символът „D“ указва десетичен маркер (тук точка/точка „.“). След десетичния символ идва „99“ или две дробни цифри.

Последният символ, „S“, указва използването на знак плюс или минус (нашето число е отрицателно, така че получава минус).

Ето най-използваните символи за тази маска:

символ описание
FM водещи нули и празни полета
9 една цифра
. местна десетична запетая
G разделител на групи
D локален десетичен разделител
S знак минус или плюс
L символ за местна валута

Можете да намерите повече информация за цифрово форматиране в документацията на PostgreSQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Комбинирайте няколко израза SELECT

  2. PostgreSQL последователности без празнини

  3. Излезе книгата „PostgreSQL 9.0 High Performance“.

  4. Управление на висока наличност в PostgreSQL – Част III:Patroni

  5. Oracle към PostgreSQL — Курсори и ltrees