以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助SQL语句。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77415)

--  作者:lihe60
--  发布时间:2015/11/18 8:46:00
--  求助SQL语句。

班级  姓名   语文

一班  张三   40

一班  李四   60

一班  王五   70

一班  张三   20

一班 李四   10

一班 王五   5

 

 

上面是SQL数据库

 

如果张三的语文总分不为0或空,显示

张三  60

如果张三的语文总分为0或空,显示

李四  70

如果张三和李四的语文总分为0或空,显示

王五  75

 

这样的SQL语句如何写。

不知我的意思写清楚没有。


--  作者:Hyphen
--  发布时间:2015/11/18 8:54:00
--  

条件语句

Case When

 

http://www.foxtable.com/help/topics/1827.htm

 


--  作者:大红袍
--  发布时间:2015/11/18 9:23:00
--  

不明白你什么意思,又为什么要这样做?而且姓名不可能只有三个啊。


--  作者:lihe60
--  发布时间:2015/11/18 9:39:00
--  
以下是引用大红袍在2015/11/18 9:23:00的发言:

不明白你什么意思,又为什么要这样做?而且姓名不可能只有三个啊。

、如果张三有成绩,只取张三的成绩,并显示语文。


--  作者:大红袍
--  发布时间:2015/11/18 9:49:00
--  

取出语文大于0的表格。

 

select case 姓名 when \'张三\' then 1 when \'李四\' then 2 when \'王五\' then 3 else 4 End as 排序, * f rom {表A} where 语文 > 0

 

然后你对 排序 列进行一下排序,取第一条即可。