免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5845 | 回复: 4
打印 上一主题 下一主题

SHELL怎样像游标一样对SQL查询结果集进行循环? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-05-26 18:34 |只看该作者 |倒序浏览
SHELL怎样像游标一样对SQL查询结果集进行循环?
比如 select A,B,C,count(1) AS D from table group by A,B,C
结果是
A B C D
----------
1 5 Q 3
2 6 W 3
3 7 R 4
4 8 T 5

现在如果想像游标一样一行一行的获取A,B,C,的值
再用这些值组合成命令运行,
知道所有行都处理完毕为止,那么 该怎么实现?
我的做法是先把结果集定向到一个文件
再用 while [ $# -gt 0] 作循环
分别用
a=`awk {print $1} file`
b=`awk {print $2} file`
c=`awk {print $3} file`
获取每行的变量值
但每个变量获取的却是整个列的值。
哪位DX 指教一下

论坛徽章:
0
2 [报告]
发表于 2005-05-26 23:39 |只看该作者

SHELL怎样像游标一样对SQL查询结果集进行循环?

#!/bin/sh
while read line
do
set $line
echo $1 $2 $3 $4
echo =do sth here===
echo =done, next line=
echo
done < urfile

论坛徽章:
0
3 [报告]
发表于 2005-05-27 08:56 |只看该作者

SHELL怎样像游标一样对SQL查询结果集进行循环?

可是用使用awk和sh来完成,举例说明:
awk '{print "yourcode",$1,$2}' filename|sh

论坛徽章:
0
4 [报告]
发表于 2005-05-27 14:07 |只看该作者

SHELL怎样像游标一样对SQL查询结果集进行循环?

#!/bin/sh
n=1
# export n  
m=`awk 'END {print NR }' readme`
echo $m, $n
while [ $n -le $m ]
do
line=`awk  '{ if ( NR == '"$n"' ) print}' readme`
a=`echo $line|awk '{print $1}'`
b=`echo $line|awk '{print $2}'`
c=`echo $line|awk '{print $3}'`
d=`echo $line|awk '{print $4}'`
echo "$a,$b,$c,$d"
n=`expr  $n + 1 `  
sleep 5
done
前一阵子写的,你应该用的上

论坛徽章:
0
5 [报告]
发表于 2005-05-29 02:11 |只看该作者

SHELL怎样像游标一样对SQL查询结果集进行循环?

谢谢 各位 ,我先试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP