-2

我需要选择两个空值之间的行。

我的问题是我怎样才能获得我需要的所选课程的名称和标记。我不能每次都换表,因为表中的总行数约为 13000。

我认为这太多了,甚至更多的是我从 excel 文件中获取此表,每次都进行一些更改(一天两次甚至更多)。你会有什么看法?

例如:-

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

3 回答 3

0

如果你的意思是你想要没有空值的记录,那么使用 -

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 回答