Я запускаю этот скрипт bash, чтобы подключиться к базе данных PostgreSQL, выполнить какой-либо запрос и просто проверить, возвращает ли он пустой результат или нет. Затем я хочу напечатать, были ли возвращены какие-либо строки.
#!/bin/sh
DATABASE=dbname
USERNAME=user
HOSTNAME=somehost.com
export PGPASSWORD=password
queryResult () {
psql -h $HOSTNAME -U $USERNAME -d $DATABASE <<SQL
SELECT * FROM myTable WHERE valueA > 5.0 OR valueB > 5.0;
IF @@ROWCOUNT > 0 THEN 1 ELSE 0;
SQL
}
valuesFound=$(queryResult)
echo $valuesFound
У меня есть две проблемы с этим:
1) В нем сохраняется результат первого запроса (SELECT * FROM myTable...
) в valuesFound
и печатает его, а я этого не хочу. Все, что меня волнует, - возвращает ли оператор IF 1 или 0.
2) Второй запрос (IF @@ROWCOUNT...
) выдает синтаксическую ошибку: Syntax error at or near IF