我有两张桌子tbl_Category
和tbl_Course
.
在tbl_Category
我有这样的行:
CatID CatName CatDesc
1 Cat1 catDesc1
2 Cat2 catDesc2
3 Cat3 catDesc3
4 Cat4 catDesc4
5 Cat5 catDesc5
和tbl_course
价值观就像
CoursID Name AssignCategory AdditionalCat
1 cou1 1 2,3
2 cou2 2 3
3 cou3 1 3,4
我需要如下结果
包含 AsignCategory 和 additionalcat 的类别
CatID CatName CatDesc
1 Cat1 catDesc1
2 Cat2 catDesc2
3 Cat3 catDesc3
4 Cat4 catDesc4
不包含 AsignCategory 和 additionalcat 的类别
CatID CatName CatDesc
5 Cat5 catDesc5
我正在使用这个拆分功能
CREATE FUNCTION dbo.StrSplit (@sep char(1), @s varchar(512))
RETURNS table
AS
RETURN (
WITH Pieces(pn, start, stop) AS (
SELECT 1, 1, CHARINDEX(@sep, @s)
UNION ALL
SELECT pn + 1, stop + 1, CHARINDEX(@sep, @s, stop + 1)
FROM Pieces
WHERE stop > 0
)
SELECT pn,
SUBSTRING(@s, start, CASE WHEN stop > 0 THEN stop-start ELSE 512 END) AS s
FROM Pieces
)
我正在使用以下查询形式分配类别结果:
select * from dbo.Tbl_Category
where catid in(select assigncategory from Tbl_Course )
)
select * from dbo.Tbl_Category
where catid not in(select assigncategory from Tbl_Course
)
请帮我完成上述查询的其他类别结果。