Как я могу удалить буквенно-цифровые строки из столбца в postgresql? - PullRequest
0 голосов
/ 06 июня 2018

Предположим, что имя моего столбца "psdi", я хочу печатать только числовые строки

psdi
100
10k
103f
456
9o2u
125
931

Требуется O / P:

psdi
100
456
125

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Использовать сопоставление с образцом в выражении where

'^-?([0-9]+\.?[0-9]*|\.[0-9]+)$' - выбирает все типы значений (положительные, отрицательные и плавающие значения)

select *
from (
    values ('100T')
          ,('456.5')
          ,('-65')
          ,('9879t')
          ,('454')
    ) t(a)
where a ~ '^-?([0-9]+\.?[0-9]*|\.[0-9]+)$'

demo


Ваш запрос будет

select psdi
from your_table
where psdi ~ '^-?([0-9]+\.?[0-9]*|\.[0-9]+)$'
0 голосов
/ 06 июня 2018

Вот два простых метода.Нужно искать буквы:

select t.*
from t
where not psdi ~ '[a-zA-Z]'

или просто цифры:

select t.*
from t
where not psdi ~ '^[0-9]+$'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...