Postgres preg_match - PullRequest
       9

Postgres preg_match

0 голосов
/ 27 августа 2018

В моей таблице есть столбец с именем «точка», тип - varchar. Он всегда содержит 4 цифры, такие как «2463» или «1343». Мне нужно показать все строки, где первые цифры больше 20 (например). Я думал, что смогу сделать что-то подобное, но это не сработает.

SELECT (regexp_matches(dot, '(\d{1}', 'g')) as firstDigit FROM product WHERE firstDigit > 20

Ответы [ 3 ]

0 голосов
/ 27 августа 2018

Проверьте это,

SELECT left(cast(dot as varchar), 2) as dot1 
FROM product 
WHERE dot > '20'
0 голосов
/ 27 августа 2018

SQL Fiddle

SELECT 
    *
FROM
    four_digits
WHERE
    substr(dot, 0, 3)::int > 20

substr(dot, 0, 3) принимает только первые два символа, ::int преобразует оба этих символа в целочисленное значение, которое можно сравнить с 20

0 голосов
/ 27 августа 2018

Попробуйте этот SQL-запрос:

SELECT * FROM product WHERE substring(dot::string from 0 for 3)::int > 20
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...