我有一个情况。如何提取仅使用C ++的AppId
。没有其他课程。
样本数据如下所示
AppID | Course
---------------
101 | C++
101 | Data Structure
100 | C++.
201 | Analysis of Alogrithm
201 | Data Structure
等等
这是虚拟SQL
DROP TABLE #app
CREATE TABLE #app (AppID int, Course nvarchar(50))
INSERT INTO #app
VALUES(101,'C++'),
(101 ,'Data Structure'),
(100 ,'C++'),
(201 ,'Analysis of Alogrithm'),
(201 ,'Data Structure')
Select AppId,Course From #app
答案 0 :(得分:2)
我认为这会起作用
select AppId from #app a
where
AppId in (select AppId from #app where Course='C++') and
1 = (select count(course) from #app where AppId=a.AppId)
答案 1 :(得分:2)
您可以尝试这样的事情:
SELECT
AppId,
Course,
count(*) as Total
FROM
#app
WHERE
AppId in (SELECT AppId FROM #app WHERE Course='C++')
GROUP BY
AppId,
Course
HAVING
Total = 1
答案 2 :(得分:1)
select AppId from your_table where course = 'C++.';
答案 3 :(得分:1)
如果我理解正确,你只想在这种情况下提取100(唯一只有C ++作为课程的条目)。你可以用
SELECT AppID from #app WHERE Course=C++
MINUS
SELECT AppID from #app WHERE Course!=C++
这应该删除那些也有其他课程的AppID。
答案 4 :(得分:0)
你会这样做:
SELECT * FROM table_name WHERE Course='C++'
或者,如果您的表格包含课程& AppID字段有其他字段,但您只想提取与AppID和课程相关的数据,您可以这样做。
SELECT AppID, Course FROM table_name WHERE Course='C++'
答案 5 :(得分:0)
您也可以尝试此SQL查询
select AppId from #app
where Course='C++' and Course not in(select Course from #app where Course!='C++')
group by AppId