-3

このクエリの何が問題なのか誰か教えてもらえますか? このコードは機能していません:

SELECT index_no FROM test_record_tbl WHERE year='2012' and year='2013';

このコードは機能しています:

SELECT index_no FROM test_record_tbl WHERE year='2012' or year='2013';
4

3 に答える 3

3

年が(おそらく)2012年と2013年の両方になることは決してないため、失敗しています。

And は排他演算子です。つまり、ステートメントが true と評価されるには、両方の条件が TRUE である必要があります。

OR は一方、または他方、または両方を意味します

于 2013-03-07T07:07:25.990 に答える
2

私の理解が正しければ、どのレコードが年とindex_noに属しているかを取得したいと考えています。20122013

この問題はしばしば と呼ばれRelational Divisionます。

SELECT  index_no 
FROM    test_record_tbl 
WHERE   year IN ('2012', '2013')
GROUP   BY index_no
HAVING  COUNT(DISTINCT year) = 2
于 2013-03-07T07:16:34.153 に答える
0

と の間には違いがandありorます。

2012 年と 2013 年が同時に存在することはありませんが、1 つの年が 2012 年または 2013 年になる可能性があります

そのため、最初の SQL クエリでは結果が得られませんでしたが、2 番目のクエリでは結果が得られました。

于 2013-03-07T07:10:06.763 に答える