2016-01-31 5 views
0

Я не очень разбираюсь в SQL и нуждаюсь в некоторой помощи. У меня есть таблица со многими столбцами и я пытаюсь определить те строки, где несколько комбинаций значений столбцов одинаковы. Ниже приведен пример запроса, который будет выбирать строку, когда ВСЕ сравнения были истинными. Запрос выполняется, но не с правильным эффектом.SELECT Запрос для нескольких столбцов

SELECT * 
FROM [Customer] 
WHERE [State] = [Shipping State/Province] 
    AND [Zip Code] = [Shipping Zip/Postal Code] 
    AND [Customer Type] = [Customer Type 2] 

Заранее спасибо.

+2

Если вы можете предоставить образцы данных, вам будет легко помочь. – Bayeni

+1

Вы отметили вопрос MySQL и Postgres. Тем не менее, ни одна из них не поддерживает квадратные скобки. Пожалуйста, отметьте свой вопрос в базе данных, которую вы действительно используете. Тем временем я удаляю посторонние теги. –

+0

Благодарим вас за руководство. –

ответ

0

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

+0

'[Почтовый индекс доставки]' Здесь разделение не произойдет, это имя столбца. Проверьте, что он заключен в квадратные скобки *. Ответ просто не имеет отношения к вопросу –

1

Как написано, ваш запрос будет выглядеть так, как вы хотите. Одна из возможностей заключается в том, что значения NULL игнорируются. Если это так:

SELECT * 
FROM [Customer] 
WHERE ([State] = [Shipping State/Province] OR [State] IS NULL AND [Shipping State/Province] IS NULL) AND 
     ([Zip Code] = [Shipping Zip/Postal Code] OR [Zip Code] IS NULL AND [Shipping Zip/Postal Code] IS NULL) AND 
     ([Customer Type] = [Customer Type 2] OR [Customer Type] IS NULL AND [Customer Type 2] IS NULL); 

Другая возможность состоит в том, что ценности могут выглядеть одинаково, но из-за ведущих/конечные пробелы или другие подобные ищут буквы, они не являются.

+0

Это сделало трюк. Спасибо всем!!! –

Смежные вопросы