2012-06-28 19 views
5

Me gustaría comparar dos columnas en la misma tabla. Quiero poder devolver todas las filas donde las dos columnas tienen el mismo valor.¿Cómo comparo dos columnas en la misma tabla?

Estoy buscando algo como SELECT * FROM FOO WHERE C1 = C4.

Por lo tanto en el ejemplo siguiente volvería sólo la primera fila:

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

si importa, estoy usando SQLite (más específicamente WebSQL).

+8

SELECCIONAR * FROM FOO DONDE C1 = C4 debería funcionar. ¿No es así? Si no, ¿son del mismo tipo y longitud de datos? Es posible que necesite convertir. No sé sobre WebSql, pero he visto algunos sistemas db que se niegan a coincidir si uno es varchar (5) y el otro es varchar (10) aunque tengan el mismo valor. En esos sistemas, debe usar Convert (varchar, 10, FieldName) para obtener una coincidencia. – David

+0

@DavidStratton ¡qué embarazoso! Funciona perfectamente Trataba de envolver selecciones en cláusulas where. La pregunta más tonta hasta el momento. – JonWells

+6

nada en absoluto. Todos hacemos cosas así. – David

Respuesta

9

SELECT * FROM FOO WHERE C1 = C4 debería funcionar. ¿No es así?

En caso negativo, ¿son del mismo tipo y longitud de datos? Es posible que necesite convertir.

No sé acerca de WebSql, pero he visto algunos sistemas db que se niegan a coincidir si uno es varchar (5) y el otro es varchar (10) aunque tengan el mismo valor. En aquellos sistemas que tienen que usar algo como

Convert(varchar, 10, FieldName) 

para conseguir un partido.

Cuestiones relacionadas