2017-02-07 3 views
0

Я использую синтаксис except в postgreSQL, чтобы проверить, соответствуют ли адреса из двух таблиц и ниже значениям, которые не соответствуют.Как определить различия между двумя столбцами значений?

select Address from allsalesdata 
except 
select Address from addresses 

Я скопировал недостающие адреса и вставить в Excel, чтобы проверить против источника данных (адреса), и я не могу определить различия. Я проверил обе, если и точные формулы в Excel, чтобы проверить соответствие двух значений и ответ был отрицательным. Как определить различия между двумя значениями столбцов в SQL?

allsalesdata       addresses 

111 Thoroughbred Avenue   111 Thoroughbred Avenue 
222 Bannerdale Blvd    222 Bannerdale Blvd 
3333 Stampede Drive    3333 Stampede Drive 
444 Stampede Drive    444 Stampede Drive 
555 Thoroughbred Avenue   555 Thoroughbred Avenue 
+2

может быть ведущим пространством? –

+0

Yup тот сделал. Есть ведущие пробелы. Может ли SQL это учитывать? Я понимаю Python и языки программирования, кроме SQL. –

ответ

1

Попробуйте использовать trim

накладки ([ведущей | конечную | как] [символы] из строки)

Удалить самую длинную строку, содержащую только символы (пробел по умолчанию) от начала/конца/на обоих концах строки

select trim(both ' ' from Address) as Address from allsalesdata 
except 
select trim(both ' ' from Address) as Address from addresses 
1

Как указывает Макнетс, вы можете удалить передние и конечные пробелы, как он упоминает. Если у вас больше, чем просто пробелов, то вы можете использовать возможность регулярного выражения, как описано в this answer

Если вы хотите указать разницу для последующей обработки, я рекомендую написать таблицу различий (выберите кроме select) в csv с включенными котировками, чтобы вы могли использовать текстовый редактор или команду linux для определения этих надоедливых символов.