最近做一个数据清理,根据行号清理,所以需要查出这个行的最大最小值出来进行删除,如果靠手动每次去查,太麻烦所以就用在sh脚本当中执行SELECT语句,并将结果赋值给一个变量。
sh脚本如下
#! /bin/sh echo "Please enter the bankseq: c" read bankseq echo "do you confirm enter the bankseq Y/N : " ; read result ; if [ "Y" = ${result} -o "y" = ${result} ] then i=1; usq_add_max=0; #userseq增加值 db2 connect to xxx dd=`db2 "select min(userseq),max(userseq) from puser where bankseq=$bankseq"`; usq_min=`echo $dd|awk '{print $5}'` usq_max=`echo $dd|awk '{print $6}'` while((i<=1000)); do i=$i+1; usq_add_max=$(($usq_min+50000)); if [ $usq_add_max -gt $usq_max ] then usq_add_max=$usq_max; fi db2 "delete from (select * from PUSERCERT where userseq <= $usq_add_max and userseq >= $usq_min and userseq in (select userseq from PUSER_TMP where bankseq=$bankseq))" >> Clear1_PUSERCERT.log usq_min=$(($usq_min+50000)); done; fi
说明
sh脚本查询出来赋值不好赋值,所以只能用到AWK处理文本文件的语言,进行截取。