SQL Query在NULL之间进行选择

时间:2012-10-23 09:11:27

标签: mysql

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

我的问题是我如何获得所需的所选课程的名称和标记。我不能每次更改表,因为表中的总行数约为13000.

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

例如: -

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

3 个答案:

答案 0 :(得分:0)

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

select * from table_name where marks is not null

答案 1 :(得分: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这样的脚本语言,您可以在脚本中自动执行此任务。

答案 2 :(得分:-1)

“中间空值”是指没有空值的那些?

如果是这样,你可以这样做:

select * from classTable where NOT ISNULL(Marks);

编辑: Excel工作表中的数据格式非常糟糕。类名应该是表中的另一列。 现在,如果您连续使用数据Name:Rahul, Marks:70,则此行的任何部分都不会指示学生所在的课程。您仅依靠数据顺序来确定课程 - 此设计非常不可靠。

所以我的建议是在excel表中包含另一列,然后在MySql表中包含。