Home Page for the TeradataForum
 

Archives of the TeradataForum

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


     
  <Prev Next>  
<<First
<Prev
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
     char_field
     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?

Because

     Select '01' '02'

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

And

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


--
Ulrich Arndt

www.data2knowledge.de



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