2012-06-28 49 views
5

Tôi muốn so sánh hai cột trong cùng một bảng. Tôi muốn có thể trả về tất cả các hàng trong đó hai cột có cùng giá trị.Làm cách nào để so sánh hai cột trong cùng một bảng?

Tôi đang tìm một cái gì đó như SELECT * FROM FOO WHERE C1 = C4.

Vì vậy trong ví dụ dưới đây, tôi sẽ trở lại chỉ hàng đầu tiên:

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

Nếu vấn đề, tôi đang sử dụng SQLite (cụ thể hơn WebSQL).

+8

CHỌN * TỪ FOO WHERE C1 = C4 sẽ hoạt động. Phải không? Nếu không, chúng có cùng kiểu dữ liệu và độ dài không? Bạn có thể cần phải chuyển đổi. Tôi không biết về WebSql, nhưng tôi đã nhìn thấy một số hệ thống db từ chối để phù hợp nếu một là một varchar (5) và khác là một varchar (10) mặc dù họ giữ cùng một giá trị. Trong các hệ thống đó, bạn phải sử dụng Convert (varchar, 10, FieldName) để có được một kết quả phù hợp. – David

+0

@DavidStratton thật đáng hổ thẹn! Nó hoạt động hoàn hảo. Tôi đã cố gắng để bọc lựa chọn trong điều khoản. Câu hỏi ngu ngốc cho đến nay. – JonWells

+6

KHÔNG. Tất cả chúng ta đều làm những việc như thế. – David

Trả lời

9

SELECT * FROM FOO WHERE C1 = C4 sẽ hoạt động. Phải không?

Nếu không, chúng có cùng loại dữ liệu và độ dài không? Bạn có thể cần phải chuyển đổi.

Tôi không biết về WebSql, nhưng tôi đã nhìn thấy một số hệ thống db từ chối để phù hợp nếu một là một varchar (5) và khác là một varchar (10) mặc dù họ giữ cùng một giá trị. Trong các hệ thống đó, bạn phải sử dụng một cái gì đó như

Convert(varchar, 10, FieldName) 

để khớp.

Các vấn đề liên quan