特殊teradata子句,列名称>;='';
我有一个不再在这里工作的人为teradata写的statament,所以我不能直接问他。特殊teradata子句,列名称>;='';,teradata,Teradata,我有一个不再在这里工作的人为teradata写的statament,所以我不能直接问他。 在此语句中,where中的最后一个子句是:。。。和Column\u Name>=''。我不知道该子句应该做什么。 如果有关系,列名称为[十进制](7,0)NULL 有人能向我解释一下,该条款接受哪些案件,拒绝哪些案件吗? 对我来说,它应该允许所有内容,因为所有内容都是主要的或等于null当您将字符串与数值进行比较时,字符串将转换为FLOAT,在您的情况下,空字符串'被视为0,因此,这只是一种愚蠢的方法来检查
在此语句中,where中的最后一个子句是:
。。。和Column\u Name>=''
。我不知道该子句应该做什么。
如果有关系,列名称为
[十进制](7,0)NULL
有人能向我解释一下,该条款接受哪些案件,拒绝哪些案件吗?
对我来说,它应该允许所有内容,因为所有内容都是主要的或等于
null当您将字符串与数值进行比较时,字符串将转换为FLOAT
,在您的情况下,空字符串'
被视为0
,因此,这只是一种愚蠢的方法来检查Column\u Name>=0
并过滤负值和NULL
。你永远不知道这是否是作者的意图:)当>=''子句应用于字符列时,它将限制空记录
如果表中有两列,一列为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,秩=5的区域_cd列中的空格不可见
如果我们在此表中使用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
当您将字符串与数值进行比较时,字符串将转换为浮点值
,在您的情况下,空字符串'
将被视为0
,因此这只是检查列名称>=0
并过滤负值和NULL
的愚蠢方法。你永远不知道这是否真的是作者的意图:)哦,好吧,谢谢,我想可能是这样的,但我们没有任何teradata服务器(这是一个复杂的情况)来测试它到底是如何运行的。如果你想写下来作为答案,我很乐意接受!