Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pull Columns based on row value

I have a table X

ID      A       B       C        D
1       T       T       F        T
2       F       T       F        T
3       T       F       T        F

So if my input is 1 for ID, then I want all column names that have value T for row 1. In above case A,B,D or If ID is 3 then A and C.

How could I list these columns?

like image 422
Rohan Bhatte Avatar asked Nov 21 '25 04:11

Rohan Bhatte


1 Answers

You can use UNPIVOT for this

SELECT Y
FROM Table1
UNPIVOT (X FOR Y IN ([A], [B], [C], [D])) U
WHERE [ID] = 1 AND X = 'T'

Returns

+---+
| Y |
+---+
| A |
| B |
| D |
+---+

SQL Fiddle

like image 154
Martin Smith Avatar answered Nov 22 '25 18:11

Martin Smith



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!