栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

按类型选择查询

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

按类型选择查询

因此,首先只是暂存您的数据。请注意,我将添加一个标识行ID,以供以后使用。

IF OBJECT_ID('tempdb..#test') IS NOT NULL   drop table #testIF OBJECT_ID('tempdb..#Numbered') IS NOT NULL   drop table #Numbered CREATE TABLE #test (Code CHAr(2), [DESC] varchar(10), [type id] INT, RowNumber INT IDENTITY(1,1))INSERT #test     VALUES ('01', 'Rajan', 1),('01' ,'Sajan', 1),('01' ,'Vijayan', 2),('01' ,'Suresh', 3),('01' ,'Caresh', 4),('01' ,'Sujesh', 4),('01' ,'vikran', 4),('02' ,'desk', 1),('02' ,'card' ,2),('02' ,'villa', 2),('02', 'megash', 2),('02', 'supan', 3)

然后,我们创建一个存放区,使用该行ID来计算每个名称应继续在代码的哪一行。

  CREATE TABLE #Numbered      (       RowNum int, Code CHAr(2), [type] VARCHAr(10), [DESC] VARCHAr(10)       )   INSERT #Numbered         SELECT (select count(*) from #test where pre=t1.Code AND [type id]=t1.[type id] AND  RowNumber<=t1.RowNumber),      pre,      [type id],      [DESC] FROM #test t1

最后,我们在数据上创建一个PIVOT表(以“伪造”该运算符的标准SQL 2000方法完成)。然后,我们将“
PIVOT表”放置在派生选择中,该选择仅返回所需的列,但允许我们对pre和rownum列进行排序以生成所需的输出。

     SELECt Code,[type-1],[type-2],[type-3],[type-4]        FROM (Select P.Code,RowNum        , Min( Case When type = '1' Then [DESC] End ) As [type-1]        , Min( Case When type = '2' Then [DESC] End ) As [type-2]        , Min( Case When type = '3' Then [DESC] End ) As [type-3]        , Min( Case When type = '4' Then [DESC] End ) As [type-4]From #Numbered As P  Group By P.Code,RowNum) R        ORDER BY Code,RowNum

如果您想进一步解释这些问题,请告诉我。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647520.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号