You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL Server中用多LIKE查询将数据拆分到不同列?

解决方案

你可以通过CASE条件判断来拆分数据到不同列,修改后的查询代码如下:

SELECT 
    -- 匹配'due'的内容放到DueDate列
    CASE WHEN sq.[name] LIKE '%due%' 
         THEN CONVERT(VARCHAR(100), DECRYPTBYKEY(ssr.optiontextresponse)) 
         ELSE NULL END AS DueDate,
    -- 匹配'doc'的内容放到DocName列
    CASE WHEN sq.[name] LIKE '%doc%' 
         THEN CONVERT(VARCHAR(100), DECRYPTBYKEY(ssr.optiontextresponse)) 
         ELSE NULL END AS DocName
FROM [dbo].[tblsubscribeReport] ssr    
INNER JOIN [dbo].[tblsurveyque] sq 
    ON sq.surveyquestionid = CONVERT(VARCHAR(100), DECRYPTBYKEY(ssr.questionid))
LEFT JOIN [dbo].[tblsurveyquestiono] so 
    ON so.surveyquestionoptionid = CONVERT(VARCHAR(100), DECRYPTBYKEY(ssr.optionid)) 
JOIN tblSubscribers s 
    ON s.SubscriberID = ssr.SubscriberId 
WHERE 
    s.ClientID = '12'
    AND (sq.[name] LIKE '%due%' OR sq.[name] LIKE '%doc%' )

效果说明

执行后会生成两列:

  • DueDate:仅显示sq.[name]包含'due'的日期数据,其余行对应位置为NULL
  • DocName:仅显示sq.[name]包含'doc'的名称数据,其余行对应位置为NULL

进阶优化(同一行展示同一订阅者的due和doc)

如果希望同一订阅者的日期和名称出现在同一行,可使用分组聚合方式:

SELECT 
    s.SubscriberID,
    MAX(CASE WHEN sq.[name] LIKE '%due%' 
             THEN CONVERT(VARCHAR(100), DECRYPTBYKEY(ssr.optiontextresponse)) 
             ELSE NULL END) AS DueDate,
    MAX(CASE WHEN sq.[name] LIKE '%doc%' 
             THEN CONVERT(VARCHAR(100), DECRYPTBYKEY(ssr.optiontextresponse)) 
             ELSE NULL END) AS DocName
FROM [dbo].[tblsubscribeReport] ssr    
INNER JOIN [dbo].[tblsurveyque] sq 
    ON sq.surveyquestionid = CONVERT(VARCHAR(100), DECRYPTBYKEY(ssr.questionid))
LEFT JOIN [dbo].[tblsurveyquestiono] so 
    ON so.surveyquestionoptionid = CONVERT(VARCHAR(100), DECRYPTBYKEY(ssr.optionid)) 
JOIN tblSubscribers s 
    ON s.SubscriberID = ssr.SubscriberId 
WHERE 
    s.ClientID = '12'
    AND (sq.[name] LIKE '%due%' OR sq.[name] LIKE '%doc%' )
GROUP BY s.SubscriberID

这样每个订阅者的DueDate和DocName会在同一行展示,避免NULL分散的情况。

内容的提问来源于stack exchange,提问作者dotnetdeveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 21:35:16