当> =''子句应用于字符列时,它将限制空记录。
如果表有两列一个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