Estou tendo dificuldades para descobrir qual é a diferença real entre "condicionais" e "predicados" no contexto do SQL e dos sistemas de gerenciamento de banco de dados relacional. Eles significam a mesma coisa?
Por exemplo, uma cláusula WHERE é uma instrução condicional ou um predicado? Ou ambos?
Um predicado é algo que tem um valor booleano (verdadeiro/falso). Uma
WHERE
cláusula contém um predicado, simples ou composto.Uma [instrução ou expressão] condicional , como
if <predicate> then ...
oucase when <predicate> then ...
, também contém necessariamente um predicado. Por sua vez, uma expressão condicional em si pode ser parte de um predicado, como neste exemplo sem dúvida inventado:Essa é uma boa pergunta.
Dependendo das definições, você pode excluí-los ou não.
Na minha opçao:
Uma cláusula WHERE é condicional, porque decide no final quais linhas são selecionadas dependendo das condições.
Para um predicado, o resultado só pode ser True ou False, e uma cláusula WHERE não pode retornar esse resultado.
Eu pensei que você precisa de predicados para decidir se uma linha está no conjunto de resultados ou não, mas a cláusula WHERE como total não retorna True ou False