Teradata kolon’a alias verme konusunda şöyle bir seçimi var. Eğer bir kolon ismi hem tabloda hem de alias olarak verdiğinizde where koşulundaki kolon tablodakine refer ediyor.
Bu durumla birkaç kez DONEM kolonu için başıma geldi.
select cast(cast(cast(current_timestamp - interval '1' month as date format 'yyyymm') as varchar(6)) as integer) as DONEM
select cast(cast(cast(current_timestamp - interval '1' month as date format 'yyyymm') as varchar(6)) as integer) as DONEM from table1 where DONEM=201408
dediğinizde table1 içerisinde DONEM varsa onu kullanıyor.
Daha karmaşık bir örnek vermek gerekirse;
Table1 tek kolonluk bir tablo olsun (col1) .
select * from table1 ;
Alttaki select’e 3 as col1 dedim ve where col1>2 dediğimde col1-> table1.col1 olarak filtreleniyor ve result set olarak col1 isminde 3’ler döndürüyor. Eğer filtreleme 3 as col1 daki kolona uygulanmış olsaydı 5 tane 3 döndürecekti.
select 3 as col1 , col1 from table1 where col1>2;
Kolay gelsin.
0 yorum:
Yorum Gönder