【问题标题】:How to select a computed column如何选择计算列
【发布时间】:2009-07-09 07:57:06
【问题描述】:

我有一个从中选择三列的视图。在这三列中,其中一列包含操作系统版本。

我想在结果中创建一个额外的列来检查操作系统版本。如果 OS 版本低于 5.1,则应返回“Bad”,如果高于该版本,则应返回“Good”。

关于如何添加此附加列的任何想法?

【问题讨论】:

    标签: .net sql-server sql-server-2005


    【解决方案1】:

    试试这个...

    Select
        Col1,
        Col2,
        OS,
        OSResult = Case When OS < 5.1 Then 'Bad' Else 'Good' End
    From
        Table
    

    【讨论】:

    • 你是第一个,+1。但是在最后一列添加别名
    • 它有一个别名... OSResult。您可以使用“=”符号为列命名,它可以替代“as”。
    【解决方案2】:

    如果需要,也可以将其作为计算列添加到表定义中,例如

    ALTER TABLE dbo.OS ADD
        VersionOk  AS (case when [OS]<(5.1) then 'bad' else 'good' end)
    

    【讨论】:

      【解决方案3】:

      假设列不能为NULL:

      SELECT  ...
              CASE WHEN OS_VERSION < '5.1' THEN 'BAD' ELSE 'GOOD' END AS IsVersionGood
      FROM    ...
      

      【讨论】:

        【解决方案4】:

        选择 OS_Version,如果 OS_Version

        希望这能有所帮助。

        【讨论】:

          猜你喜欢
          • 2022-11-04
          • 1970-01-01
          • 1970-01-01
          • 2018-11-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-10-18
          相关资源
          最近更新 更多