SQL:根据列将一行分为两行

齐格勒

很抱歉,如果这是重复的。请指出我正确的问题。我正在使用SQL SERVER2008。我正在使用以下查询,因为我需要从3个表中获取数据。

SELECT qc.FileID as [FileID],    
qc.QID1 as [QID1],    
xqs.SID1 as [SID1],   
xqc.CID1 as [CID1],  
xqs.Comments as [SComments],  
xqc.Comments as [CComments]  
FROM QCTable(nolock) qc  
JOIN QCSectionTable (nolock) xqs ON qc.QCID = xqs.QCID  
LEFT JOIN QCChargeTable (nolock) xqc ON xqc.QCXrefID = xqs.QCXrefID

对于上面我得到像FieID1 SID1 SID1 CID1 SComments CComments

我有下面这样的行

FileID1  QID1 SID1 CID1 SComments  CComments

我需要在行上方拆分为

FileID1 QID1 SID1 null SComments
FileID1 QID1 SID1 CID1 CComments

提前致谢。

足球迷

您可以使用UNION ALL以下方法执行以下操作

SELECT 
     qc.FileID AS [FileID1]
    ,qc.QID1 AS [QID1]
    ,xqs.SID1 AS [SID1]
    ,NULL AS [CID1]    --assigning default value as null
    ,xqs.Comments AS [SComments]
FROM QCTable(NOLOCK) qc
JOIN QCSectionTable(NOLOCK) xqs ON qc.QCID = xqs.QCID
LEFT JOIN QCChargeTable(NOLOCK) xqc ON xqc.QCXrefID = xqs.QCXrefID

UNION ALL

SELECT 
     qc.FileID AS [FileID1]
    ,qc.QID1 AS [QID1]
    ,xqs.SID1 AS [SID1]
    ,xqc.CID1 AS [CID1]
    ,xqc.Comments AS [CComments]
FROM QCTable(NOLOCK) qc
JOIN QCSectionTable(NOLOCK) xqs ON qc.QCID = xqs.QCID
LEFT JOIN QCChargeTable(NOLOCK) xqc ON xqc.QCXrefID = xqs.QCXrefID

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章