sqlServer,oracle,sql求教
有张这样的Test表,列col1,col2,....均为int型且每条记录列上均有值,如何才能查找出每条记录第一个出现负值的列在第几列,最好返回一个数字,返回列名也行...
有张这样的Test表,列col1,col2,.... 均为int型且每条记录列上均有值,如何才能查找出每条记录第一个出现负值的列在第几列,最好返回一个数字,返回列名也行
展开
1个回答
展开全部
首先,这个问题用SQL并不是很好解决,因为你需要查找行的数据,而且是每一行出现第一个负数。我能想到的无非就是将表格倒置,也就是行转列后再进行查询,至少我是没这个精力去设计这么一个复杂的查询在sql中来实现你的要求。而且这并不是SQL所擅长的事情。
所以我们可以换个思路,Excel内嵌的许多函数正好很擅长处理这些事情,而且对于行的处理更加简单,只需要你知道第一行怎么处理,后面直接拖动即可,方便快捷。要实现上述功能,只需三步:
①查询出SQL的结果,将结果导出到Excel也好,复制到Excel也行,导出后,如下图:
②也是最重要的一步,找出每行的第一个负数,这里我们先找出第一行的负数,在第K列公式如下图:
然后同时按下ctrl+shift+enter键就会得到下图的结果:
③也就是最后一步,找出其他行的第一个负数,如何拖动的,不知道的话自己上网查下,如下图:
当然,如果你想将excel返回的结果存到数据库中,你大可以在数据库中加上两列,或者单独建另外一张表存储这个查询出来的值,具体怎么做相信你能够做到!
附上Excel处理结果:
好了,到此就结束了,说了这么多,希望你能明白,所有东西都不是一成不变的!
追问
唉啊,本来就是业务要求数据库处理好后再生成EXCEL给人看的,不是先Excel再导进库里,看来只有写个游标逐个查找了
启帆信息
2024-11-19 广告
2024-11-19 广告
启帆信息是英伟达中国区代理商,原厂授权代理,提供全面的软件技术解决方案以及NVIDIA以太网产品、交换机等产品,欢迎前来咨询!...
点击进入详情页
本回答由启帆信息提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询