當> =''子句應用於字符列時,它將限制空記錄。
如果表有兩列一個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
當你將一個字符串與一個數字值進行比較,該字符串被轉換爲一個FLOAT,在你的情況下,空字符串'''被視爲'0',所以這只是一個愚蠢的方法來檢查'Column_Name> = 0 '並過濾負值和'NULL'。你永遠不知道這實際上是誰寫的人的意圖:) – dnoeth
好吧,謝謝,我想這可能是類似的東西,但我們沒有任何Teradata服務器(這是一個複雜的情況)在哪裏測試如何是。如果你想把它寫成答案,我會很高興接受它! – Jackyz