案例陈述查询

时间:2015-03-15 05:47:52

标签: sql sql-server-2012 case

我可以在字段上使用case语句来更改另一个字段的值吗?像这样的东西,

SELECT  TaskDescription, 
CASE 
When TaskDescription='Lab Dips / Handloom Sent' then seq ='1'  
When TaskDescription='Lab Dips / Handloom Approve' then seq ='2' end,seq FROM SomeTable

我在TaskDescription列中有一些任务描述,我想按特定顺序获取。这就是为什么我想为每个任务描述值添加一个序列号,这样我就能得到预期的顺序,只是写'按seq排序'

1 个答案:

答案 0 :(得分:1)

如果您想要更新表格,可以使用:

Update SomeTable
Set seq = '1'
Where TaskDescription='Lab Dips / Handloom Sent'

更新:

Select TaskDescription ,seq 
From (
      SELECT  TaskDescription, 
            (CASE 
             When TaskDescription='Lab Dips / Handloom Sent' then 1 
             When TaskDescription='Lab Dips / Handloom Approve' then 2
           end) As seq FROM SomeTable
     ) As TB 
Order by TB.seq

或者:

With tb As (
    SELECT  TaskDescription
           ,(CASE TaskDescription
             When 'Lab Dips / Handloom Sent' then 1 
             When 'Lab Dips / Handloom Approve' then 2
          end) As seq 
     FROM SomeTable
)
Select * from tb
Order by tb.seq