按照外观和优先级的顺序从列中检索值

时间:2013-09-17 06:53:59

标签: sql sql-server sql-server-2008

有5个选项列表值可以存储在包含NULL

的列中

我想返回值,如果它们以优先顺序出现,例如:

SELECT * FROM dbo.whatever    
WHERE ColumnName = 'Value X'

(如果此值不存在,我想要求我的优先级中的下一个值(值W,值Z等)

1 个答案:

答案 0 :(得分:1)

您可以按该优先级列表排序,只使用top 1

获取第一个条目
SELECT top 1 * 
FROM dbo.whatever
order by case when ColumnName = 'Value X' then 1
              when ColumnName = 'Value Y' then 2
              when ColumnName = 'Value Z' then 3
              else 4
         end