2016-04-14 22 views
1

Artık burada çalışmayan biri tarafından teradata için yazdığım bir statament var, bu yüzden doğrudan ona soramayacağım.
Bu kademede, sonuncu madde şu yerde: ... and Column_Name >= ''. Bu maddenin ne yapması gerektiği konusunda hiçbir fikrim yok.
Önemli ise, Column_name bir [decimal](7,0) NULL.peculiar teradata cümlesi, Column_Name> = ''

Birisi bana hangi davanın kabul edildiğini ve bu madde tarafından reddedildiğini açıklayabilir mi? Bana
her şeyin büyük ya null

+0

zaman: - biz fıkra Bölge> = '' o zaman 4 satır aşağıda sonuçlanacaktır olarak nerede bu tabloda yer alan sorgulamak durumunda 5

görünmüyorsa = rank için region_cd sütunda NULL ve uzay temsil Bir dizgiyi sayısal bir değere karşılaştırırsanız, dizge bir "FLOAT" a dönüştürülür, sizin durumunuzda boş dizge '' '' 0' olarak kabul edilir, bu yüzden 'Column_Name> = 0 için kontrol etmek için aptalca bir yoldur 've negatif değerleri ve 'NULL' filtreler. Asla bunu yazdıran adamın niyeti olup olmadığını asla bilemezsiniz :) – dnoeth

+0

oh tamam teşekkürler, sanırım böyle bir şey olabilir, ama herhangi bir teradata sunucusuz (karmaşık bir durum). oldu. Eğer bunu bir cevap olarak yazmayı kabul ederseniz bunu kabul etmekten mutluluk duyarım! – Jackyz

cevap

1

eşittir beri senin durumda, dize bir FLOAT dönüştürülür sayısal değere '' olarak kabul edilir boş bir dize bir dize karşılaştırdığımızda bu oluk şeyi izin vermelidir dikişler 0, bu nedenle bu Column_Name >= 0 denetlemek ve negatif değerleri ve NULL filtrelemek için sadece aptal bir yoldur. Aslına bakarsanız, bunun aslında onu yazan adamın niyeti olup olmadığını asla bilemezsiniz.

0

Bir karakter sütununa> = '' cümlesi uygulandığında boş kayıtlar kısıtlanır.

Tablo 2 sütun bir Region_cd & rank_nr ve aşağıdaki gibi olan tablodaki veriler varsa: -

select * from databasename.tablename; 

*** Query completed. 5 rows found. Two column returned. 
*** Total elapsed time was 1 second. 

Region |  rank_nr 
----------  ----------- 
emea  |   1 
amr  |   2 
apac  |   3 
?   |   4 
      |   5 

?

select * from databasename.tablename where Region_cd >='' ; 
*** Query completed. 4 rows found. 2 columns returned. 
*** Total elapsed time was 1 second. 

col1  | rank_nr 
---------- ----------- 
emea  |   1 
apac  |   3 
amr  |   2 
      |   5 
İlgili konular