Home Page for the TeradataForum

Archives of the TeradataForum

Message Posted: Mon, 25 Apr 2005 @ 20:55:06 GMT

  <Prev Next>  
Next> Last>>  

Subj:   Strange syntax on in clauses
From:   ulrich arndt

Hi all,

somebody made me aware of a new (would be interesting when it was implemented) syntax on in-clauses - which can drive you crazy in case of typos.

My first expectation was that

     select (current_date - calendar_date) (format '99') (char(2)) as
     from sys_calendar.calendar
     where char_field in ('01' '02','03')
     and (current_date - calendar_date) > 0

would cause an error - for the missing ',' between '01' and '02'.

But GCC told the customer it is correct because it is ANSI compliant for an concatenation - at least one black between the '01' and '02' - no blanck would be evaluated as "01'02".

Which means the in-Clause is evaluated as ('0102','03) and in this respect the result is correct.

Is this type of concatenation limited to IN-Clauses?


     Select '01' '02'

is resulting in '01' with the column name of '02'?


select (current_date - calendar_date) (format '99') (char(2)) 'XX' from sys_calendar.calendar where ((current_date - calendar_date) (format '99') (char(2))) in ('01' '02','03') and (current_date - calendar_date) > 0 ;

in an error.

Can somebody bring some light into this? It's a bit strange from my pointo of view...


Ulrich Arndt


  <Prev Next>  
Next> Last>>  
  Top Home Privacy Feedback  
Copyright for the TeradataForum (TDATA-L), Manta BlueSky    
Copyright 2016 - All Rights Reserved    
Last Modified: 15 Jun 2023