I create quite a few ad hoc queries from data tables with large numbers and
the default floating output is a pain to read.
I can get the output format I desire with something elaborate like the
following but this is too much SQL for ad hoc queries.
select
substr(
replace(
substr(' 9123456.00',-15,3)||
substr(' 9123456.00',-12,3)||","||
substr(' 9123456.00',-9,3) ||","||
substr(' 9123456.00',-6,6)
," ,"," ")
,-15,15);
Returns 15 characters as follows:
9,123,456.00
The bash shell can do this as follows - first without & then with thousand
separator.
$ printf "%15.2f\n" -23456789.12789
-23456789.13
$ printf "%'15.2f\n" -23456789.12789
-23,456,789.13
With SQLite the half quote character seems not recognized and no output is
returned:
sqlite> .version
SQLite 3.8.11.1 2015-07-29 20:00:57 cf538e2783e468bbc25e7cb2a9ee64d3e0e80b2f
sqlite> select printf("%15.2f",-23456789.12789);
-23456789.13
sqlite> select printf("%'15.2f",-23456789.12789);
sqlite>
A search for an answer suggested the locale setting might be at fault. My
bash output for locale is as follows but I don't if/how this relates to
SQLite.
$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
Is printf with thousands separator working for anyone? If so, how? Any
suggestions? Thanks for any comments.