【问题标题】:Need To Transform Sybase Table Query Results Into More Granular Interpretation需要将 Sybase 表查询结果转化为更细粒度的解释
【发布时间】:2016-02-04 09:21:18
【问题描述】:

我想在代码中编写一条 SQL 语句,它的工作方式类似于某种 case 语句,以便识别某个“指标”代表两种不同的“含义”。当下表中的指标 =“基础”时,我希望添加一个额外的行来取代额外的样式


例如(下面的表格名称称为“样式”):

姓名|风格 |代理|类型 |指标

查尔斯 |乙| MDY |长 |底层证券


查尔斯 | C |光纤到户 |长 | |


查尔斯 | AA- | SP |长 | |


我想对该表运行一个选择查询,该查询将返回结果,每当指标 = 'Underlying' 时创建一个额外的 MDY 行,并且实质上将指标和类型拆分为两个不同的行。因此,只要存在指示符 = 底层和代理 = MDY 的行,我想返回具有两个 MDY 行的输出(一行类型 = long 和指标 = NULL,另一行类型 = NULL 和指标 = 底层)

所以输出应该是这样的:

姓名|风格 |代理|类型 |指标

查尔斯 |乙| MDY |长 |


查尔斯 |乙| MDY | |底层证券


查尔斯 | C |光纤到户 |长 | |


查尔斯 | AA- | SP |长 | |

【问题讨论】:

    标签: sybase case-statement


    【解决方案1】:

    这是使用union all的一个选项:

    select name, style, agency, type, indicator
    from styles
    where indicator != 'underlying' and type != 'long'
    union all
    select name, style, agency, type, null
    from styles
    where indicator = 'underlying' and type = 'long'
    select name, style, agency, null, indicator
    from styles
    where indicator = 'underlying' and type = 'long'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-08
      • 1970-01-01
      • 2015-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多