SQL Query/Linq : 如何从具有特定条件的多列中获取数据以提供给下拉列表

SQL Query/Linq : How to get data from mutiple column with specific criteria to feed to dropdownlist

|Distict | Gold   | Silver | Bronze   |
|--------|--------|--------|----------|
|A-------|Y-------|0-------|Y---------|    
|B-------|0------ |Y-------|0---------|    
|C-------|0------ |0-------|Y---------|     
|D-------|Y-------|0-------|0---------|      

我想根据字段中获得 Y 的列将下拉列表绑定到特定行

即:如果 A 区获得所有奖牌(用 Y 标注),下拉列表将在列表项中获得金、银和铜,否则如示例中的下拉列表将只有金和铜。

您可以通过反转数据来做到这一点

SELECT distict, 
       NAME 
FROM   yourtable 
       CROSS apply (VALUES ('Gold',gold), 
                           ('Silver',silver), 
                           ('Bronze',bronze)) cs (NAME, value) 
WHERE  value = 'Y'