日期:2014-05-17 浏览次数:20578 次
CREATE TABLE [dbo].[A_B](
[ID] [int] IDENTITY(1,1) NOT NULL,
[A] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,
[B] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,
[C] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL
)
INSERT INTO A_B(A,B,C) VALUES('科目一','A','类型一')
INSERT INTO A_B(A,B,C) VALUES('科目二','A','类型一')
INSERT INTO A_B(A,B,C) VALUES('科目三','A','类型一')
INSERT INTO A_B(A,B,C) VALUES('科目一','B','类型二')
INSERT INTO A_B(A,B,C) VALUES('科目二','B','类型二')
INSERT INTO A_B(A,B,C) VALUES('科目三','B','类型二')
INSERT INTO A_B(A,B,C) VALUES('科目一','C','类型三')
INSERT INTO A_B(A,B,C) VALUES('科目二','C','类型三')
INSERT INTO A_B(A,B,C) VALUES('科目三','C','类型三')
INSERT INTO A_B(A,B,C) VALUES('公共科目一','ALL','')
INSERT INTO A_B(A,B,C) VALUES('公共科目二','ALL','')
--查询后的数据格式如下:
-----------------------
A B C
----------------------
科目一 A 类型一
科目二 A 类型一
科目三 A 类型一
公共科目一 A 类型一
公共科目二 A 类型一
科目一 B 类型二
科目二 B 类型二
科目三 B 类型二
公共科目一 B 类型二
公共科目二 B 类型二
科目一 C 类型三
科目二 C 类型三
科目三 C 类型三
公共科目一 C 类型三
公共科目二 C 类型三
SELECT * FROM(
SELECT * FROM [dbo].[A_B]
WHERE [B]<>'ALL'
UNION ALL
SELECT A.ID,A.A,B1.B,B1.C FROM
(SELECT * FROM [dbo].[A_B] WHERE [B]='ALL') A
CROSS JOIN
(SELECT DISTINCT B,C FROM [dbo].[A_B] WHERE [B]<>'ALL') B1
) TX
ORDER BY B ,A DESC
declare @a table ([ID] [int] IDENTITY(1,1) NOT NULL,
[A] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,
[B] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,
[C] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL)
INSERT INTO @a(A,B,C) VALUES('科目一','A','类型一')
INSERT INTO @a(A,B,C) VALUES('科目二','A','类型一')
INSERT INTO @a(A,B,C) VALUES('科目三','A','类型一')
INSERT INTO @a(A,B,C) VALUES('科目一','B','类型二')
INSERT INTO @a(A,B,C) VALUES('科目二','B','类型二')
INSERT INTO @a(A,B,C) VALUES('科目三','B','类型二')
INSERT&