SET is the ANSI standard for variable assignment, SELECT is
not.
SET can only assign one variable at a time, SELECT can make
multiple assignments at once.
If assigning from a query, SET can only assign a scalar
value. If the query returns multiple values/rows then SET
will raise an error. SELECT will assign one of the values
to the variable and hide the fact that multiple values were
returned (so you'd likely never know why something was
going wrong elsewhere - have fun troubleshooting that one)
When assigning from a query if there is no value returned
then SET will assign NULL, where SELECT will not make the
assignment at all (so the variable will not be changed from
it's previous value)
As far as speed differences - there are no direct
differences between SET and SELECT. However SELECT's
ability to make multiple assignments in one shot does give
it a slight speed advantage over SET.
No Answer is Posted For this Question
Be the First to Post Answer
What is the syntax required for the creation of a cursor?
How to solve S0C7 abend with out using DISPlay in 10 mins?
i hav created a program and moved to production but failed to create the table which is been used in the program. the program shows error as soon as it is moved or installed in production or shows error during its runtime. what is the sqlcode for this error
What is reorg?
What is a data page?
My sql statement select avg(salary) from emp yields inaccurate results. Why?
What happens to a cursor after a commit?
What is the difference between drop table and delete table?
When can an insert of a new primary key value threaten referential integrity?
How to define the a field which accepts value till 99999.99 in db2
What is the cobol picture clause of the db2 data types date, time, timestamp?
What will the COMMIT accomplish?