2012-06-28 3 views
5

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

Я ищу что-то вроде SELECT * FROM FOO WHERE C1 = C4.

Поэтому в приведенном ниже примере я бы вернуть только первую строку:

C1 || C2 || C3 || C4 
-------------------------- 
1  || a || b || 1 
2  || a || b || 4 
3  || b || d || 2 
4  || b || d || 2 

Если это важно, я использую SQLite (более конкретно WebSQL).

+8

SELECT * FROM FOO ГДЕ C1 = C4 должен работать. Не так ли? Если нет, то они имеют одинаковый тип и длину данных? Возможно, вам придется конвертировать. Я не знаю о WebSql, но я видел некоторые системы db, которые отказываются сопоставлять, если один является varchar (5), а другой - varchar (10), хотя они имеют одинаковое значение. В этих системах вы должны использовать Convert (varchar, 10, FieldName), чтобы получить соответствие. – David

+0

@DavidStratton как смущающе! Он работает отлично. Я пытался обернуть выборки в предложениях. Самый тупой вопрос. – JonWells

+6

NOt вообще. Мы все так делаем. – David

ответ

9

SELECT * FROM FOO WHERE C1 = C4 должно работать. Не так ли?

Если нет, то они имеют одинаковый тип и длину данных? Возможно, вам придется конвертировать.

Я не знаю о WebSql, но я видел некоторые системы db, которые отказываются сопоставлять, если один является varchar (5), а другой - varchar (10), хотя они имеют одинаковое значение. В тех системах, которые вы должны использовать что-то вроде

Convert(varchar, 10, FieldName) 

получить матч.

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