34,591
社区成员
发帖
与我相关
我的任务
分享
SELECT E_Title,E_ID,E_SID,E_Progress ,SELECT DISTINCT E_Title,E_ID,E_SID,E_Progress ,
(CASE WHEN E_Progress<>1 THEN S_Name END)
FROM Essay,Students
WHERE E_TID=1 and ((E_Progress<>1 and E_SID=S_ID) or E_Progress=1)
ORDER by E_SID desc,E_ID desc
SELECT E_Title,E_ID,E_SID,E_Progress ,(CASE WHEN E_Progress<>1 THEN S_Name END) S_Name
FROM Essay,Students WHERE E_TID=1
and E_SID=S_ID
union
SELECT E_Title,E_ID,E_SID,E_Progress ,null
FROM Essay,Students WHERE E_TID=1
and E_SID<>S_ID
ORDER by E_ID desc
declare @t1 table(id int)
insert @t1 select 1 union all select 2
declare @t2 table(id int)
insert @t2 select 2 union all select 3
select * from @t1
select * from @t2
select * from @t1 a, @t2 b
select * from @t1 a, @t2 b where a.id=b.id
SELECT E_Title,E_ID,E_SID,E_Progress ,
(CASE WHEN E_Progress<>1 THEN S_Name END)
FROM Essay,Students
WHERE Essay.E_TID=1 and ((E_Progress<>1 and Essay.E_SID=Students.S_ID) or Essay.E_Progress=1)
ORDER by E_ID desc
--这种就应该不报错了
SELECT
E_Title,E_ID,E_SID,E_Progress ,
(CASE WHEN E_Progress<>1 THEN S_Name END)
FROM Essay,Students WHERE E_TID=1
--and (CASE WHEN E_Progress<>1 THEN 'E_SID=S_ID' END) 这个不是一个条件,这是个值
ORDER by E_ID desc
--如果要加上这个条件,我估计楼主是这个意思
SELECT E_Title,E_ID,E_SID,E_Progress ,
(CASE WHEN E_Progress<>1 THEN S_Name END)
FROM Essay,Students
WHERE E_TID=1 and ((E_Progress<>1 and E_SID=S_ID) or E_Progress=1)
ORDER by E_ID desc
SELECT E_Title,E_ID,E_SID,E_Progress
FROM Essay,Students WHERE E_TID=1
and (E_Progress=1)
ORDER by E_ID desc
and E_SID = (CASE WHEN E_Progress<>1 THEN S_ID else E_SID end)
and (E_Progress<>1 and E_SID=S_ID or E_Progress=1)