我有一个不再在这里工作的人为teradata写的信息,所以我不能直接问他。
在这个statament中,where的最后一个子句是:... and Column_Name >= ''
。我不清楚该子句应该做什么。
如果重要,Column_name是[decimal](7,0) NULL
。
有人可以向我解释哪些案件被接受,哪些案件被该条款拒绝?
对我而言,由于一切都很重要或等于null
答案 0 :(得分:1)
将字符串与数值进行比较时,字符串将转换为FLOAT
,在您的情况下,空字符串''
将被视为0
,因此这只是一个愚蠢的检查Column_Name >= 0
并过滤负值和NULL
的方法。你永远不知道这是不是写这个人的意图:)
答案 1 :(得分:0)
当在字符列上应用> =''子句时,它将限制空记录。
如果表格有2列,则一个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
? is表示NULL,而region_cd列中的rank = 5的空格不可见
如果我们在这个表中查询where子句为Region> =''那么它将产生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