2

プロパティを英語から sql に変換する必要があるこの演習の助けが必要です。

質問:

  1. 長さには少なくとも 1 つの 0 があります

    Answer: MIN(ABS(length)) = 0
    
  2. 長さには複数の値があります

    Answer: MIN(length) < MAX(length)
    
  3. 長さのヌルはありません

    Answer: COUNT(*) = COUNT(length)
    
  4. 長さの値は正または負のいずれかです

    Answer: MIN(length) * MAX(length) > 0
    
  5. 長さはゼロより上と下で同じ量だけ異なります

    Answer: MIN(length) = -max(length)
    
  6. 長さのすべての値が異なります

    Answer: COUNT(DISTINCT length) = COUNT(length)
    
  7. min(length) または max(length) の 1 つだけが正です

    Answer: MIN(length) * MAX(length) < 0 
    
  8. 長さには 1 つの値または null 値があります

    Answer: MIN(length) = MAX(length)
    

これらは正しいですか?特に#3、5、6、8についてはわかりません。

4

2 に答える 2

2
  1. 長さには少なくとも 1 つの 0 があります

    Answer: MIN(ABS(length)) = 0
    
  2. 長さには複数の値があります

    Answer: MIN(length) < MAX(length)
    or
    Answer: COUNT(distinct length) > 1
    
  3. 長さのヌルはありません

    Answer: COUNT(*) = COUNT(length)
    
  4. 長さの値は正または負のいずれかです

    Answer: MIN(length) * MAX(length) > 0
    or
    Better Answer: Sign(MIN(length)) * Sign(MAX(length)) > 0
    
    -- Because, with large values of length, multiplying two of them
    -- together can give you an overflow.
    
  5. 長さはゼロより上と下で同じ量だけ異なります

    Answer: MIN(length) = -max(length)
    
  6. 長さのすべての値が異なります

    Answer: COUNT(DISTINCT length) = COUNT(length)
    
  7. min(length) または max(length) の 1 つだけが正です

    Maybe Wrong Answer: MIN(length) * MAX(length) < 0 (0 is not positive)
    or
    Answer: MIN(length) <= 0 and MAX(length) > 0
    
    -- IF: one must be positive and the other must be negative
    -- change <= 0 to < 0
    
  8. 長さには 1 つの値または null 値があります

    Wrong Answer: MIN(length) = MAX(length) -- null=null does not return true
    or
    Answer: COUNT(distinct length) <= 1
    
于 2011-03-15T20:56:29.493 に答える
0

#2 に質問します。同一の長さの値が 2 つある場合があります。

#3 については、NULL 以外をチェックするために HAVING 句を使用しません。#4も同じ。HAVING は、スカラー値に対して各行の等価性をチェックする適切な場所ではありません。

#5には、言葉遣いに値する問題があるかもしれません。分布ではなく、最小値と最大値を意味していると確信していますか?

#8も奇妙な言葉遣いです。Null は長さの値であるか、値がない可能性があります。クエリの形式によって異なります。ANDまた、 &などの演算子を使用しないという要件はありますORか?

また、NULL は、ほとんどのデータベース プラットフォームで「不明」として扱われます。不明なため、別の値との等価性をチェックできません。何Value1が入っているか分からなければ、入っているものと同じかどうかも分からないでしょうValue2...

于 2011-03-15T20:35:27.617 に答える