I'm using sqlite from version 2. I have 1000+
sql-s written already. I understand that
outermost statement must have AS clause as I
have explained below (select d as d ...).
Sqlite authors always say that new version can
not break sql-s for milions of users using
sqlite. But this change does.

Sorry but I did not ask how can I fix my sql-s.
I know I can create table and insert into.
Change select to select d as d is just ridiculous.
Rename column name into same name. What is that?


Hick Gunter je 22.12.2017 ob 7:55 napisal:
The behaviour does not need to match what you think of as consistent.

The only way to force a certain column name is with the AS clause *on the 
outermost statement*. Otherwise, the column name is implementation defined and 
may change between releases. You should not be relying on column names other 
than those you explicitly set using the AS clause. This is a common mistake.

If you really need the column names, then just CREATE TABLE first (this gives 
you defined column names AND declared data types) and the INSERT INTO ... 
SELECT later (which ignores the generated column names from the select 
statement).

-----Ursprüngliche Nachricht-----
Von: sqlite-users [mailto:sqlite-users-boun...@mailinglists.sqlite.org] Im 
Auftrag von Radovan Antloga
Gesendet: Donnerstag, 21. Dezember 2017 16:35
An: sqlite-users@mailinglists.sqlite.org
Betreff: [EXTERNAL] Re: [sqlite] Changed behaviour or bug using field alias in 
3.21.0

Behaviour is not consistent when using
create table as
or just select statement.
Try this simple test.

create table test(a int, b int);
insert into test values (1, 1);

select d from (select c as d from (select a as c from test));

you get column name d as expected
but when you have create table as statement

create table test2 as
select d from (select c as d from (select a as c from test));

you get table test2 with column name a.

If you change to this

create table test2 as
select d as d from (select c as d from (select a as c from test));

you will get name correct. I think it should be the same as when just using 
select statement.

Best Regards
Radovan


select a from (select b from (select c from test)))

Richard Hipp je 21.12.2017 ob 14:52 napisal:
The behavior change is a bug fix.  See
http://sqlite.org/src/info/de3403bf5ae for details.

On 12/21/17, Radovan Antloga <radovan.antl...@siol.net> wrote:
I have table (create statement):

CREATE TABLE SOPP1 (
     STAT  varchar(1) collate systemnocase,
     RID  varchar(2) collate systemnocase,
     VP  integer,
     BLANK  varchar(6) collate systemnocase,
     NAZIV  varchar(24) collate systemnocase,
     KN  varchar(12) collate systemnocase,
     A  varchar(1) collate systemnocase,
     B  varchar(1) collate systemnocase,
     RACUN  varchar(1) collate systemnocase,
     URE  varchar(1) collate systemnocase,
     ZN  varchar(1) collate systemnocase,
     TOCKE  varchar(1) collate systemnocase,
     PRC  varchar(1) collate systemnocase,
     UP  varchar(1) collate systemnocase,
     IZPIS  varchar(1) collate systemnocase,
     D  varchar(1) collate systemnocase,
     F2U  varchar(1) collate systemnocase,
     F2O  varchar(1) collate systemnocase,
     F2T  varchar(1) collate systemnocase,
     F2Z  varchar(1) collate systemnocase,
     F2P_1  integer,
     F2P_2  integer,
     F2P_3  integer,
     F5  varchar(1) collate systemnocase,
     AJPES  varchar(1) collate systemnocase,
     ZZ  integer,
     VD  integer,
     NS  integer,
     MES  integer,
     NORURE  varchar(1) collate systemnocase,
     G  varchar(1) collate systemnocase,
     E  varchar(1) collate systemnocase,
     H  varchar(1) collate systemnocase,
     I  varchar(1) collate systemnocase,
     J  varchar(1) collate systemnocase,
     SM  varchar(1) collate systemnocase,
     NO  varchar(1) collate systemnocase,
     PRIO  varchar(1) collate systemnocase,
     V_1  varchar(1) collate systemnocase,
     V_2  varchar(1) collate systemnocase,
     V_3  varchar(1) collate systemnocase,
     V_4  varchar(1) collate systemnocase,
     V_5  varchar(1) collate systemnocase,
     V_6  varchar(1) collate systemnocase,
     V_7  varchar(1) collate systemnocase,
     V_8  varchar(1) collate systemnocase,
     V_9  varchar(1) collate systemnocase,
     V_10  varchar(1) collate systemnocase,
     V_11  varchar(1) collate systemnocase,
     V_12  varchar(1) collate systemnocase,
     FOR  integer,
     P_1  integer,
     P_2  integer,
     P_3  integer,
     P_4  integer,
     P_5  integer,
     P_6  integer,
     primary key (RID, VP, BLANK));

When I create new table using this sql:

drop table if exists WM4P;
create table WM4P as
select
     P, A, B, AB, U, H, ZZ,
     case
       when AB in ('7') then 99
       when AB in ('57', '58', '59', '5M') then null
       when AB = '56' and ZZ = 12 then 01
       when AB = '56' then 02
       when A = '3' then 03
       when AB in ('1M') then 08
       when AB in ('10') then 07
       when AB in ('12') then null
       when A in ('1', '5') and H = '1' then 02
       when A in ('5') then 02
       when A in ('1') then 01
     end as M4_OP
from (
     select
       VP as P, ifnull(A,'') as A, ifnull(B,'') as B,
ifnull(A,'')||ifnull(B,'') as AB,
       ifnull(URE,'') as U, ifnull(H,'') as H, ZZ
     from SOPP1
     );

You will see that first column name is VP instead of P.
In previous versions name was P not VP.

Best Regards
Radovan Antloga
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


___________________________________________
  Gunter Hick | Software Engineer | Scientific Games International GmbH | 
Klitschgasse 2-4, A-1130 Vienna | FN 157284 a, HG Wien, DVR: 0430013 | (O) +43 
1 80100 - 0

May be privileged. May be confidential. Please delete if not the addressee.
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to