Какой самый простой способ найти строки данных, которые вызывают ошибки в Query? - PullRequest
0 голосов
/ 02 мая 2020

Я получаю сообщение об ошибке при выполнении запроса из-за того, что пара строк моих исходных данных имеет десятичные дроби, а это не так. Мне нужно точно определить эти указанные c строки, чтобы я мог исправить их в исходных данных, но я не знаю, как их найти. Есть ли простой способ точно определить строки, которые вызывают ошибку?

1 Ответ

0 голосов
/ 02 мая 2020

Похоже, ваши данные неправильно введены, у вас есть тип данных text или varchar для того, что должно быть числовым c типом класса. Если так, то это нужно исправить, но да, вы должны сначала исправить данные. Вы можете изолировать и исправить неправильные строки, выбрав те, которые не соответствуют регулярному выражению, которое определяет допустимое значение . Поскольку вы не публикуете образцы данных или описания таблиц, предоставьте только пример, который я составляю, не ваши значения.

Пример: - Только для цифр: column_name! ~ '^ [0-9] + $' - Для положительного или отрицательного целого числа: имя_ столбца! ~ '^ (+ | -)? [0-9] + $'

with test (id,num_val) as
     ( values (1,'abc'),(2,'18'),(3,'1.7'),(4,'-12') )
select id, num_val, 'Fails Just Digits'
  from test
 where num_val !~ '^[0-9]+$'
union
select id, num_val, 'Fails Pos/Neg Integer'
  from test
 where num_val !~ '^(\+|-)?[0-9]+$'
order by 1,3;
  1. терпит неудачу, оба
  2. проходят оба (так не выводится)
  3. сбой обоих
  4. сбой Просто цифры
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...