且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

用sql,shell来描述生活中要电话号码的几个场景

更新时间:2022-09-02 10:06:00

很久之前听过一个小笑话,现在搜不到了,大体的意思如下,是某个朋友问一个大学同学要另一个同学的电话号码
#场景1
A:你知道老王的电话号码吗?
等待了5分钟
B:知道
A心中一丝喜悦
A:那能把他的电话号码发给我吗?
等待了10分钟
B:好的
后面省去几十字

本来是个小笑话,但是联系起生活来,还是蛮有意思,有些朋友比较熟了,可以直接要,有些朋友不太熟,还得寒暄一下,有的可能就见过一面,还得报个家门,然后继续要。
可能这个过程本身很简单,但是整个交流的过程还是饶有趣味。值得好好推敲一下。
比如上面的这个场景,算是两个逗比朋友的对话,可以用sql这么表示。
先声明一下电话表有很多,成千上万
select count(*)from mobile_list;
99999999
然后使用下面的sql来查询。
select mobile_num
from mobile_list
where name='老王'
and exists(select mobile_list from mobile_list )
亮点在于exists字句,里面始终在做无用功。

#场景二
在来一个一般性的对话,先带点寒暄
A:Hi
B:Hi
A:最近怎么样?
B:还可以啊
A:问你个事情
B:恩
A:老王的电话号码你知道不?
B:哦,知道啊,稍等
B:189xxxxxxxx
A:谢谢
B:不客气

可以用pl/sql这么表示
begin
getResponse_From_B boolean;
    if(getResponse_From_B('Hi'))
    then
        if(getResponse_From_B('最近则么样'))
        then
            if(getResponse_From_B('王总的电话号码你知道不'))
            then
                if(getResponse_From_B('谢谢')
                then dbms_output.put_line('对话结束');
            end if;
        end if;    
    end if;
end;
/
可以用shell这么表示
if  test -n $寒暄 -o test -n $扯淡
then
 ask_mobile('王总');
fi

#场景三
如果说关系好一些,或者同事关系,可以直接要电话,就不寒暄了。
A:老王的电话给我发一下,赶紧的
B:189xxxxxxxx
SQL>select get_mobile('王总') from dual;
189xxxxxxxx

或者用shell来表示
grep -w "老王的电话" mobile_list
189xxxxxxxx

#场景四
如果关系不够熟络,那么还得报一下家门,但是开门见山直接要电话。
A:我是xxxx,那次吃饭坐在你对面的兄弟,我想问一下王总的电话,给我发一下
B:哦,好的。189xxxxxxxx
这种感觉就有点类似下面的情形
scp getMobile.sh 10.2.1.3:/home/oracle
ssh 10.2.1.3:"ksh /home/oracle/getMobile.sh"

#场景五
还有一种可能着急,直接电话过去,然后过一会儿收到一条信息,里面就是电话号码
A电话B
B:189xxxxxxxx

这种感觉就有点类似
echo '189xxxxxxxx'