2

この疑問は非常に基本的なものですが、特定の質問に対する回答を読んだ後、かなり混乱しました (単純な主題であるため、その理由はわかりません)。

次の基本的なクエリを検討してください。

SELECT * FROM emp WHERE ename BETWEEN ‘A’ AND ‘C’

返される従業員名は、名前が A と B で始まる従業員であり、その説明は次のとおりです。

ここでは、文字列が BETWEEN 演算子を使用して文字列と比較されます。これは、ename >= 'A' AND ename < = 'C' と同等です。'CLARK' は > 'C' であるため、CLARK という名前はこのクエリには含まれません。

説明にename is less than 'C' がある場合、Clark が' C' より大きいと見なされるのはなぜですか?

ありがとうございました。

4

2 に答える 2

2

アルファベット順に並べ替えると

Constant Clark C Claude 

あなたが得るでしょう

C Clark Claude Constant 

それで

C < Clark < Claude < Constant

より正式な説明についてはウィキペディアを参照してください。本質は次のとおりです(強調は私のものです):

2 つの文字列のどちらがアルファベット順で最初に来るかを判断するために、最初に最初の文字が比較されます。最初の文字がアルファベットで先に現れる文字列が、アルファベット順で最初になります。最初の文字が同じ場合は、2 番目の文字が比較され、順番が決まるまで続きます。( 1 つの文字列が比較する文字を使い果たした場合、それが最初に来ると見なされます。たとえば、「cart」は「carthorse」の前に来ます。 ) 文字列のセットをアルファベット順に並べると、最初の文字が同じ単語になります。文字はグループ化され、そのようなグループ内では、最初の 2 文字が同じ単語がグループ化されます。

于 2013-03-07T00:32:23.573 に答える