根据SQL中同一表中的条件分隔列

时间:2013-07-16 06:42:16

标签: sql sql-server sql-server-2008

我从表中得到一个结果集,我必须根据条件拆分特定值并显示在另一列(用户定义)中。

//查询

    SELECT wtcCommentId, wtcTransactionId, wtcTaskId,  wtcUserLogin,
     wtcCommentDateTime, wtcCommentText
    FROM   dbo.tblWorkflowTransactionComments (NOLOCK)
    WHERE  wtcTransactionId = 141248

上述查询的输出大约为10行。

在上面的查询中,如果该结果的wtcCommentText为0,我需要将wtcTaskId列分开。因此,如果wtcTaskId为0,则wtcCommenttext值应为0显示在单独的列(transcommenttext)中,而对于其他列,它应显示在同一列(wtcCommentText)中。这样我就可以根据taskId

对评论进行拆分

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:4)

我不确定这是否真的有意义,但是好吧,我是一个笑的游戏:

SELECT wtcCommentId, wtcTransactionId, wtcTaskId,  wtcUserLogin,
 wtcCommentDateTime,
 CASE WHEN wtcTaskId!=0 THEN wtcCommentText END as wtcCommentText,
 CASE WHEN wtcTaskId=0 THEN wtcCommentText END as transcommenttext
FROM   dbo.tblWorkflowTransactionComments (NOLOCK)
WHERE  wtcTransactionId = 141248

这似乎是一种微不足道的重新格式化,但最好在前端或报告生成器中完成。