如果结果为空,一直在尝试解决如何返回消息。
我正在运行如下选择语句:
select * from maxIDValue where max_value > 1000000 order by max_value desc;
我通过 psql 在 bash 脚本中运行它,但是结果将通过我正在工作的电子邮件发送出去。
我想知道的是,如果结果什么都没有返回,那么我是否可以得到它,所以至少输入一条消息而不是(0 行),即使它只是一条消息说没有值或某种程度的东西。
我也通过 bash 尝试过:注意:.sql 文件是上面的查询
{
if [ "$( psql -h $SERVERNAME -U test -d Titan -tAf "/home/postgres/tools/testmaxresults.sql" )" = '1' ]
then
psql -h ${SERVERNAME} -U test -d Titan -f /home/postgres/tools/testmaxresults.sql >>${TMPFILE01}
else
echo "No Value Exists" >>${TMPFILE01}
fi
}
总结一下
我希望 bash 运行脚本,如果有数据,即结果,然后运行并报告(报告部分在电子邮件等方面工作)
但是选择运行并且有0个结果然后打印/回显“无值”
我想针对多个数据库运行此查询。我如何将它包含在 bash 脚本中,以便我可以针对每个数据库运行它。
如果我运行它,它只报告最后一个数据库,而不是两者。
任何帮助表示赞赏。
一个简单的 psql 解决方案是
:ROW_COUNT
在查询后立即将 psql 变量重新注入到另一个查询中,以在为零时返回“不存在值”文本。:ROW_COUNT
例子:
第一个查询将导致 :
ROW_COUNT
为非零且第二个查询将不输出任何内容,或者 :ROW_COUNT
为零且第二个查询将输出文本。psql 之外的另一个解决方案(比如由于某种原因您不能更改 SQL 脚本)是将结果重定向到一个专用文件,然后测试它是否为空,如果是,则将“No rows”文本放入其中。用bash: