SQL 将某列数据赋值到上一行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 将某列数据赋值到上一行相关的知识,希望对你有一定的参考价值。

如图 当T008不为空时 将数据赋值到为空的上一行T008
比如T007=60 T008=59534.0230
当T007=59 T008为空时 T008=59534.0230
当T007=58 T008为空时 T008=59534.0230
当T007=57 T008为空时 T008=59534.0230
。。。
当T007=66 T008为空时 T008=41480.6998
。。。

参考技术A Select *,
Case When T008 Is Null Then
(
Select T008 From 表A Where T007=
(Select min(T007) From 表A Where T008 Is Not Null And T007>A.T007))
Else
T008
End As T008
From 表A A
参考技术B 若你的数据库是MSSQL,私信留下你Q,我帮你解决。

sql 怎样查1列多值全都在一个集合里面

public List getResult(java.sql.ResultSet rs) throws SQLException
ArrayList result=new ArrayList();
//声明一个集合,结果集
//获得数据元
ResultSetMetaData meta=rs.getMetaData();
ArrayList row=null;
//判断是否有数据
while (rs.next())
row=new ArrayList();//集合,装一行数据
for (int i = 1; i <= meta.getColumnCount(); i++)
row.add(rs.getInt(i));//把每个单元的数据封装

result.add(row);//把每行数据封装

return result;


public void executeSQL()
//SQL语句
String sql="select sum(CH_RES) as 'LI_CH_RES'," +
"sum(QUEUED_CH_RES) as 'LI_QUEUED_CH_RES'," +
"sum(TBSCallTime) as 'LI_TBSCallTime' " +
"from excel where TETRANetwork in ('13LI','18LD','6LIT')" +
" group by TETRANetwork";
Connection conn=null;//连接数据库
try
PreparedStatement pstmt=conn.prepareStatement(sql);
//结果 result
List result=this.getResult(pstmt.executeQuery());
catch (SQLException e)
e.printStackTrace();



在JAVA中我们写代码就是不要写重的代码。这样写对你可能有用看看吧
参考技术A 经常做这样的东西自己去建一个bean里面是你ResultSet赛选出来的值读取出来后全部赋值过去过去后声明出那个bean的一个对象赋值给list把list放在request就可以在页面赛选出来了 参考技术B select field1 + ',' + field2 + ',' + field3 as field from tablename
这样就可以了,将多个字段合并,你还可以适当增加分隔符。

以上是关于SQL 将某列数据赋值到上一行的主要内容,如果未能解决你的问题,请参考以下文章

sql 查询某列值为 a和b

sql查询中,如何将某列 分成 两列。

sql 怎样查1列多值全都在一个集合里面

excel怎样将某列数据改为一位小数

SQL 怎样将查询出某列的多行数据,变为一行显示? 通过SQL语句查询出结果 AutoID cT

R语言观察日志(part25)--将某列设置为行名