sqlServer,oracle,sql求教

有张这样的Test表,列col1,col2,....均为int型且每条记录列上均有值,如何才能查找出每条记录第一个出现负值的列在第几列,最好返回一个数字,返回列名也行... 有张这样的Test表,列col1,col2,.... 均为int型且每条记录列上均有值,如何才能查找出每条记录第一个出现负值的列在第几列,最好返回一个数字,返回列名也行 展开
 我来答
xu3180497
2014-05-06 · TA获得超过1659个赞
知道小有建树答主
回答量:390
采纳率:66%
帮助的人:195万
展开全部

首先,这个问题用SQL并不是很好解决,因为你需要查找行的数据,而且是每一行出现第一个负数。我能想到的无非就是将表格倒置,也就是行转列后再进行查询,至少我是没这个精力去设计这么一个复杂的查询在sql中来实现你的要求。而且这并不是SQL所擅长的事情。

所以我们可以换个思路,Excel内嵌的许多函数正好很擅长处理这些事情,而且对于行的处理更加简单,只需要你知道第一行怎么处理,后面直接拖动即可,方便快捷。要实现上述功能,只需三步:

①查询出SQL的结果,将结果导出到Excel也好,复制到Excel也行,导出后,如下图:

②也是最重要的一步,找出每行的第一个负数,这里我们先找出第一行的负数,在第K列公式如下图:

然后同时按下ctrl+shift+enter键就会得到下图的结果:

③也就是最后一步,找出其他行的第一个负数,如何拖动的,不知道的话自己上网查下,如下图:

 

当然,如果你想将excel返回的结果存到数据库中,你大可以在数据库中加上两列,或者单独建另外一张表存储这个查询出来的值,具体怎么做相信你能够做到!

附上Excel处理结果:

好了,到此就结束了,说了这么多,希望你能明白,所有东西都不是一成不变的!

 

追问
唉啊,本来就是业务要求数据库处理好后再生成EXCEL给人看的,不是先Excel再导进库里,看来只有写个游标逐个查找了
启帆信息
2024-11-19 广告
启帆信息是英伟达中国区代理商,原厂授权代理,提供全面的软件技术解决方案以及NVIDIA以太网产品、交换机等产品,欢迎前来咨询!... 点击进入详情页
本回答由启帆信息提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式