2016-04-14 72 views
1

我有一個爲那些不在這裏工作的人寫了teradata的文章,所以我不能直接問他。
在這篇文章中,最後一項是:... and Column_Name >= ''。我不知道該條款應該做什麼。
如果有問題Column_name是[decimal](7,0) NULL特殊的teradata子句,Column_Name> =''

有人可以向我解釋哪些案件被接受,哪些案件被該條款拒絕?
對我來說,接縫當空字符串''被視爲比較字符串到數字值的字符串轉換爲FLOAT,你的情況應該允許槽的一切,因爲一切都主要或等於null

+0

當你將一個字符串與一個數字值進行比較,該字符串被轉換爲一個FLOAT,在你的情況下,空字符串'''被視爲'0',所以這只是一個愚蠢的方法來檢查'Column_Name> = 0 '並過濾負值和'NULL'。你永遠不知道這實際上是誰寫的人的意圖:) – dnoeth

+0

好吧,謝謝,我想這可能是類似的東西,但我們沒有任何Teradata服務器(這是一個複雜的情況)在哪裏測試如何是。如果你想把它寫成答案,我會很高興接受它! – Jackyz

回答

1

0,所以這只是一個愚蠢的方式來檢查Column_Name >= 0和篩選負值和NULL。你永遠不知道這實際上是誰寫的人的意圖:)

0

當> =''子句應用於字符列時,它將限制空記錄。

如果表有兩列一個Region_cd & rank_nr和在表中的數據是如下: -

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 

?是表示NULL和空間在用於秩region_cd列= 5是不可見的

如果我們在此表中查詢與where子句爲區域> =「」則它會導致下面4行: -

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