如果左侧包含 null 并且右侧包含值,则在 sql 中向左移动单元格

2024-03-26

在 Sql 中,我得到如下格式的结果。 我总共有 6 列。第一行第 6 列包含该值,第二行第 5 和第 6 列包含该值。但如果前一列不包含该值,我需要检查每个单元格,这意味着我需要在第一列中包含该值。

实际结果

         a          b           c       d          e    f
                                                        1
                                                   1    2
                                        1          2    3

预期结果:-

      a          b           c       d          e    f
      1                                             
      1          2                                        
      1          2           3                        

请发布一些好的答案(我正在使用 SQL Server 2008-R2)


另一种方式,类似于@Astander的(但使用OUTER APPLY代替PIVOT / UNPIVOT):

SELECT
    a = MIN(CASE WHEN y.rn = 1 THEN y.val END),
    b = MIN(CASE WHEN y.rn = 2 THEN y.val END),
    c = MIN(CASE WHEN y.rn = 3 THEN y.val END),
    d = MIN(CASE WHEN y.rn = 4 THEN y.val END),
    e = MIN(CASE WHEN y.rn = 5 THEN y.val END),
    f = MIN(CASE WHEN y.rn = 6 THEN y.val END)
FROM t
  OUTER APPLY
    ( SELECT
          x.val,
          rn = ROW_NUMBER() OVER (ORDER BY rn)
      FROM
      ( VALUES 
        (a,1), (b,2), (c,3), (d,4), (e,5), (f,6)
      ) x (val, rn) 
      WHERE x.val IS NOT NULL
    ) y 
GROUP BY 
    t.tid ;

Test in SQL-Fiddle http://sqlfiddle.com/#!3/65b88b/1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果左侧包含 null 并且右侧包含值,则在 sql 中向左移动单元格 的相关文章

随机推荐

  • 使用 Spring LdapTemplate 从 Active Directory 获取所有属性

    我有一个 Spring Boot 应用程序 它使用 LDAP 来对用户进行身份验证 对于用户 我正在映射 AD 中的属性并填充用户的名字 姓氏 部门 电子邮件 电话以及图像等值 但是 我无法从属性中获取员工编号 当我使用该工具检查属性时活动
  • 如何融合CMMI和Scrum? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我在一家获得 CMMI 5 级认证的商店工作 该认证很重要 因为它使我们能够接触到某些客户和合同 我正在研究如何将 Scrum 与 CMMI 结合起来
  • Apple 推送通知和表情符号字符

    我最近发现这篇关于 APNS 和 Emoji 字符的非常有趣的文章 EASY APNS 只是为了好玩 http www easyapns com category just for fun 它包含一个包含所有支持的表情符号的列表 但是 我无
  • Kotlin - 了解 Getter 和 Setter

    Kotlin 自动生成它的 getter 和设置 但我从不引用它们 另外 在 Kotlin 中编写自定义 getter setter 的正确方法是什么 当我说myObj myVar 99我感到myVar是一个公共领域myObj我直接访问 这
  • Flutter,异步调用后渲染小部件

    我想渲染一个需要 HTTP 调用来收集一些数据的小部件 得到以下代码 简化 import package flutter material dart import dart async import dart convert void ma
  • 如何更新 C# Windows 控制台应用程序中的当前行?

    在 C 中构建 Windows 控制台应用程序时 是否可以写入控制台而无需扩展当前行或转到新行 例如 如果我想显示一个百分比来表示进程距离完成的程度 我只想更新与光标相同的行上的值 而不必将每个百分比放在新行上 这可以通过 标准 C 控制台
  • 如何访问 React Redux 中的存储状态?

    我只是在制作一个简单的应用程序来学习异步与 redux 我已经让一切正常工作 现在我只想在网页上显示实际状态 现在 我如何在渲染方法中实际访问商店的状态 这是我的代码 所有内容都在一页中 因为我刚刚学习 const initialState
  • 从 c++ 为 android (arm) 生成一个 python 库 - 也许用 swig?

    我想在我的项目中包含一个 C 库kivy https kivy org 蟒蛇应用程序 可以自动执行此操作swig https swig org Doc4 1 Python html and 迪斯图尔斯 https docs python o
  • SQL Server 输出子句

    我有点困惑为什么我似乎无法使用下面的语句获得插入行的 新身份 SCOPE IDENTITY 只是返回 null declare WorkRequestQueueID int declare LastException nvarchar MA
  • 图像的色调效果 - iOS

    我只是想知道 是否有可能为图像制作色调效果 但不使用OpenGl ES 最好使用CALayer 我花了一些时间寻找答案 但仍然一无所获 tnx 您是在谈论对图像进行着色吗 一种快速方法 尽管可能不是最好的方法 为此您需要一个自定义解决方案
  • 从 GSL 库中获取 C gsl_fit_linear() 函数中线性回归的 p 值

    我正在尝试用 C 语言重现 R 中的一些代码 因此我尝试使用以下函数来拟合线性回归gsl fit linear 功能 在 R 中 我将使用 lm 函数 它使用以下代码返回拟合的 p 值 lmAvgs lt lm c 1 23 11 432
  • 使所有新目录具有777权限

    我有一个脚本 运行时会在其中创建一个目录 home test 然后在其中写入一些文件 当我运行这个脚本时 它工作得很好 但是 当我从 perl 脚本调用它时 ret home testscript py 它没有权限 因此无法创建该文件夹 或
  • 有没有可用于将 32 位/64 位可执行文件打包在一起的工具? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我真的很喜欢 SysInternals 实用程序 例如 Process Explorer 处理 64 位兼容性的方式 看起来 32 位可执
  • 在 Unix 上连接文本文件中的多个字段

    我该怎么做 File1看起来像这样 foo 1 scaf 3 bar 2 scaf 3 3 File2看起来像这样 foo 1 scaf 4 5 foo 1 boo 2 3 bar 2 scaf 1 00 我想做的是找到同时出现的线条Fil
  • 用 NaN 对矩阵进行排序,提取索引向量并将 NaN 移到末尾

    mockup 3 5 nan 2 4 nan 10 nan 如何在忽略 NaN 的情况下按降序对这个向量进行排序 所得向量的长度必须与mockup 即我需要将所有 NaN 放在末尾 结果应该是这样的 mockupSorted 10 5 4
  • 远程编辑谷歌文档

    我正在尝试向我的网站添加一项功能 如下所示 单击按钮会将文本附加到 Google 文档 显然 我需要在驱动器中创建一个 Apps 脚本 问题是如何从我的网站触发 Apps 脚本 您可以假设我是驱动器 文档的所有者 因此有权以我喜欢的任何方式
  • 在 Swift 中将字符串转换为 CGFloat

    我是 Swift 新手 如何将字符串转换为 CGFloat I tried var fl CGFloat str as CGFloat var fl CGFloat CGFloat str var fl CGFloat CGFloat st
  • 弃用离线访问权限后在 Facebook 上注销/切换用户

    通过脸书弃用离线访问权限 https developers facebook com roadmap offline access removal 5 月 1 日起 Web 应用程序可以轻松延长 OAuth 访问令牌的持续时间 60 天 但
  • JavaScript 中的 setTimeout 是否接受真实(浮点)延迟时间_

    我只是在看JavaScript 计时事件 http www w3schools com js js timing asp 那里说 第二个参数表示从现在开始多少毫秒后您要执行第一个参数 现在 我知道在 JavaScript 中 浮点数和整数都
  • 如果左侧包含 null 并且右侧包含值,则在 sql 中向左移动单元格

    在 Sql 中 我得到如下格式的结果 我总共有 6 列 第一行第 6 列包含该值 第二行第 5 和第 6 列包含该值 但如果前一列不包含该值 我需要检查每个单元格 这意味着我需要在第一列中包含该值 实际结果 a b c d e f 1 1