2016-04-14 6 views
1

私はテキサスのためにここでもう働かない人が書いたステラタスを持っているので、私は彼に直接尋ねることはできません。
このステートメントでは、whereの最後の句は:... and Column_Name >= ''です。その句が何をすべきかについての手がかりはありません。
重要な場合は、Column_nameは[decimal](7,0) NULLです。特有のteradata句、Column_Name> = ''

誰かがその訴訟で受け入れられ、拒否されたケースを私に説明することができますか?私に
それはすべてがメジャーまたはnull

+0

とき文字列と数値を比較すると、文字列は 'FLOAT'に変換されます。空の文字列' '' 'は' 0'として扱われます。これは 'Column_Name> = 0をチェックする単なる方法です'と負の値と' NULL'をフィルタリングします。これは実際にそれを書いた人の意図だったかどうかわかりません:) – dnoeth

+0

ああ、ありがとう、私はそれが何かのようなものかもしれないと思われますが、どのように正確にテストするために(それは複雑な状況です)ありました。あなたが答えとしてそれを書いたければ、私はそれを受け入れることを嬉しく思います! – Jackyz

答えて

1

に等しいので、あなたの場合には、文字列がFLOATに変換された数値に''のように扱われ、空の文字列を文字列を比較するとそれがトラフすべてを許可する必要があり縫い目0だから、これはちょうどColumn_Name >= 0をチェックし、負の値とNULLをフィルタリングするためのばかげた方法です。

0

> = ''句が文字列に適用されると、nullレコードが制限されます。

表は、表2の列1 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 

?私たちは地域のように句が> =「」それは4行の下になりますどこに、このテーブルにクエリを実行した場合、ランク= 5のためにregion_cd列にNULLと空間を表すことは目に見える

ではありません。 -

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