2016-04-14 70 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