While assigning the result of a function or expression to a variable in PL/pgSQL, when is it necessary to use a SELECT
statement (sub-query)?
This may be just my misconception from SQL. I thought that everything should be enclosed in a (SELECT ...)
(even if it just involves computing a number), e.g.
$$
DECLARE parts text[];
BEGIN
parts := (SELECT string_to_array(my_str,'_') );
...
$$
but I just found that it works without the SELECT
:
parts := string_to_array(my_str,'_');
(It's almost as if I can use PL/pgSQL as if its Pascal.)
In general, what kind of expressions can be used directly without SELECT
in computing values?