I never thought I'd be asking an SQL question here. However today is the day!
Say I have a table with numeric columns A, B populated as follows. We can think of column A being a foreign key to a parent table, and column A and B together being the primary key of its child table:
A B 1 1 1 2 2 1 2 2 3 1 3 2
I would like a SQL Select to return all records after, for example, (2, 1). I.e. (2, 2), (3, 1), and (3, 2).
Obviously the following won't work (it won't return (3, 1)):
select A, B from mytable when A > 2 and B > 1
I wish there were a way to write "A > 2 and B > 1" in a way that indicates B is "is a breakdown" of A, for lack of a better way to express it.
Of course I could create a derived column with the two numbers concatenated together, padded with enough zeros to accomodate maximum number size. Something like:
A B AandB 1 1 0101 1 2 0102 2 1 0201 2 2 0202 3 1 0301 3 2 0302
... Then I could write the SQL I want as:
select A, B from mytable when AandB > '0201'
However it would be wonderful if I could write a Where clause operating on the original numbers.
Maybe it would have been best to avoid multiple numeric columns making up a child table's key, although I'm not sure avoiding such would always eliminate the need for what I'm asking about.
This has been a tough one to Google search for solutions to. Thoughts and ideas are welcome!
Request clarification before answering.
That would be a tuple comparison. The following would work:
WHERE (A = 2 AND B > 1) OR A > 2
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 5 | |
| 4 | |
| 4 | |
| 3 | |
| 2 | |
| 2 | |
| 2 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.