最近做一个数据清理,根据行号清理,所以需要查出这个行的最大最小值出来进行删除,如果靠手动每次去查,太麻烦所以就用在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处理文本文件的语言,进行截取。