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: sqlite-users-boun...@sqlite.org [mailto:sqlite-users-boun...@sqlite.org] 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 sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users