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

查询中的每一行可能有不同的条件吗?

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

查询中的每一行可能有不同的条件吗?

假定您知道如何为行提供行号(例如,SQL Server中的ROW_NUMBER()),则可以创建一个查找(匹配)表并将其联接。参见以下说明:

查找表:

RowNum    Value1         A2         B3         C

您的SourceTable源表(假设您已经向其中添加了RowNum,以防万一,请为其引入子查询(对于SQL Server
2005或更高版本,请引入CTE):

RowNum Name-----------1      A2      B3      C4      D

现在,您需要将LookupTable与SourceTable进行内部联接

LookupTable.RowNum = SourceTable.RowNumAND LookupTable.Name =SourceTable.Name
。然后仅对RowNum的LookupTable进行此结果的左连接。如果
LookupTable.RowNum ISNULL
最终结果存在,那么您知道至少一行上没有完全匹配项。

这是联接的代码:

SELECt T.*, LT2.RowNum AS Matched FROM LookupTable LT2LEFT JOIN (    SELECt ST.*    FROM SourceTable ST    INNER JOIN LookupTable LT ON LT.RowNum = ST.RowNum AND LT.Name = ST.Name) T    ON LT2.RowNum = T.RowNum

以上查询的结果集将包含行,

Matched IS NULL
如果行与LookupTable表中的条件不匹配。



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

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

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