Your statement doesn't even work in MySQLas || is a logical operator there.
And Oracle complains about your original query:
SQL> select stepid ,'STEPID'||stepid ,stepid+5
,'STEPID'||stepid+5,'STEPID'||5 from seqtable;
select stepid ,'STEPID'||stepid ,stepid+5 ,'STEPID'||stepid+5,'STEPID'||5
from seqtable
*
ERROR at line 1:
ORA-01722: invalid number
And Oracle works with parentheses just like SQLite does:
SQL> select stepid ,'STEPID'||stepid ,stepid+5
,'STEPID'||(stepid+5),'STEPID'||5 from seqtable;
STEPID 'STEPID'||STEPID STEPID+5
---------- ---------------------------------------------- ----------
'STEPID'||(STEPID+5) 'STEPID
---------------------------------------------- -------
5 STEPID5 10
STEPID10 STEPID5
So I'm not sure what "other" databases you're talking about.
What you're seeing is operator precedence. || has the highest precedence so
you need the parentheses to override that.
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Dave Wellman
Sent: Friday, May 31, 2013 11:08 AM
To: 'General Discussion of SQLite Database'
Subject: Re: [sqlite] Concatenating literals with column values
Hi Richard,
Many thanks, that works.
Why do I need the "()" around my calculation? (apart from 'because that
makes it work' !) I've used other dbms's and don't need them there.
Cheers,
Dave
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users