Subject | Re: [firebird-support] Re: How to shorten =================================== between header and data rows? |
---|---|
Author | Michael Ludwig |
Post date | 2012-06-09T11:01:28Z |
ehaerim schrieb am 09.06.2012 um 01:16 (-0000):
okay for character data; up to the user to decide. But for numerical
data? Would you rather have your numerical ID or your amount of money
truncated on the left-hand or right-hand side?
In other words, it doesn't do what you want.
One might think that SET WIDTH should behave like printf implementations
that try to fit data, including numerical data, into a given number of
characters but do not under any circumstances truncate data.
Or maybe - and I think this is better - operate like Oracle's sqlplus,
which displays a garden fence #### if a number doesn't fit in a display
column, to indicate display buffer overflow (see below).
"SET WIDTH bla" in Firebird/ISQL versus "COLUMN bla FORMAT <spec>" in
Oracle/SQLPLUS, that's obviously not the same level of sophistication.
But then, they don't operate on the same budget either.
--
SQL> col a format 99999
SQL> select * from zwei;
A B C
------ ---------- ----------
9 7 juhu
34567 8765 em2012
SQL> col a format 9999
SQL> select * from zwei;
A B C
----- ---------- ----------
9 7 juhu
##### 8765 em2012
SQL> col a clear
SQL> select * from zwei where a > 8;
A B C
---------- ---------- ----------
9 7 juhu
34567 8765 em2012
SQL> help col
...
SQL> -- Michael
>SET WIDTH appears to work by truncating data for display. That may be
> ii INTEGER Not Null;
> si SMALLINT Not Null;
> set width ii 4;
> set width si 2;
> select ii, si from test;
> ii si
> ========== =======
> 1001 1
>
> ii and si displays 10 chars and 7 chars.
> I want them to be 4 chars and 2 chars like
> ii si
> ==== ==
> 1001 1
okay for character data; up to the user to decide. But for numerical
data? Would you rather have your numerical ID or your amount of money
truncated on the left-hand or right-hand side?
In other words, it doesn't do what you want.
One might think that SET WIDTH should behave like printf implementations
that try to fit data, including numerical data, into a given number of
characters but do not under any circumstances truncate data.
Or maybe - and I think this is better - operate like Oracle's sqlplus,
which displays a garden fence #### if a number doesn't fit in a display
column, to indicate display buffer overflow (see below).
"SET WIDTH bla" in Firebird/ISQL versus "COLUMN bla FORMAT <spec>" in
Oracle/SQLPLUS, that's obviously not the same level of sophistication.
But then, they don't operate on the same budget either.
--
SQL> col a format 99999
SQL> select * from zwei;
A B C
------ ---------- ----------
9 7 juhu
34567 8765 em2012
SQL> col a format 9999
SQL> select * from zwei;
A B C
----- ---------- ----------
9 7 juhu
##### 8765 em2012
SQL> col a clear
SQL> select * from zwei where a > 8;
A B C
---------- ---------- ----------
9 7 juhu
34567 8765 em2012
SQL> help col
...
SQL> -- Michael