-2

2 つの null 値の間にある行を選択する必要があります。

私の質問は、必要な選択したクラスの名前とマークを取得するにはどうすればよいかということです。テーブルの総行数は約13000であるため、毎回テーブルを変更することはできません。

私はそれが多すぎると思います。さらに、このテーブルをExcelファイルから取得し、毎回いくつかの変更を加えています(1日2回またはそれ以上)。あなたの意見はどうなりますか?

例えば:-

Name       Marks
=================
class10    NULL
rahul      45
priti      65
terry      74
class9     NULL
Andrew     80
Nastya     75
Ajay       81
class8     NULL!
4

3 に答える 3

0

nullのないレコードが必要な場合は、-を使用します

select * from table_name where marks is not null
于 2012-10-23T09:19:19.673 に答える
0

テーブルのレイアウトが正しくないため、ニーズに応えられません。テーブルに行の順序を定義する追加のインデックスがある場合にのみ、SQL で「値の間」の行を選択する方法はありません。

正しいテーブル レイアウトは次のようになります。

Class      Name       Marks
class10    rahul      45
class10    priti      65
class10    terry      74
class9     Andrew     80
class9     Nastya     75
class9     Ajay       81
...

次に、次のように class10 のすべてのメンバーを照会できます。

SELECT Name, Marks FROM table WHERE Class = 'class10'

クラス用に独自のテーブルを作成する方がさらに良いでしょうが、Excel-Importの場合、これが望ましいとは思えません。

お役に立てれば。

編集: 次に、次のようになるように、インデックスを使用して Excel テーブルをインポートします。

ID   Name       Marks
=====================
1    class10    NULL
2    rahul      45
3    priti      65
4    terry      74
5    class9     NULL
6    Andrew     80
7    Nastya     75
8    Ajay       81
9    class8     NULL!

次に、クラス 10 のマークを次のように選択できます。

SELECT Name, Marks FROM table WHERE ID BETWEEN 2 AND 4

またはあなたのクラス9のような:

SELECT Name, Marks FROM table WHERE ID BETWEEN 6 AND 8

PHP のようなスクリプト言語を使用すると、このタスクをスクリプトで自動化できます。

于 2012-10-23T09:20:13.643 に答える
-1

「中間のヌル」とは、ヌル値のないものを意味しますか?

もしそうなら、あなたはこれを行うことができます:

select * from classTable where NOT ISNULL(Marks);

編集: Excel シートのデータ形式が非常に悪いです。クラス名は、テーブルの別の列にする必要があります。現在、 data を含む行を取得するとName:Rahul, Marks:70、この行のどの部分も生徒がどのクラスにいるかを示していません。クラスを決定するためにデータの順序のみに依存しているため、この設計は非常に信頼できません。

したがって、私の推奨事項は、Excel シートに別の列を含め、その結果として MySql テーブルに含めることです。

于 2012-10-23T09:14:20.603 に答える