【问题标题】:Case statement query案例陈述查询
【发布时间】:2015-05-17 10:26:27
【问题描述】:

我可以在一个字段上使用 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 编号,这样我就可以得到预期的顺序,只需写 'order by seq'

【问题讨论】:

  • 您不能更改SELECT 语句中的字段值。您可以更改输出 column 的值。您可能希望发布示例数据和所需结果以阐明您的要求。
  • 那怎么办呢?
  • 您使用UPDATE 更改表中的字段值。

标签: sql sql-server-2012 case


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2010-10-30
    • 2016-05-13
    • 2016-02-21
    • 1970-01-01
    • 2012-09-08
    • 2013-10-14
    相关资源
    最近更新 更多