我想我没有提供太多清晰度就问了这个问题:
我有一个存储结果ext_results的临时表。然后我有一个CTE(myTrackingData)来检索预测结果。两组都具有与主题相关的FK id。
我想加入这两个很容易,但我的问题是myTrackingData只有“历史”的预测,而ext_results的历史存储为单独的主题(因此是单独的ID)。
当我加入这两个时,我想要做的是操纵ext_results,以便intsubjectID主题就像历史主题中的任何一个只返回完全匹配历史主题的id。因此,我的ext_Results将匹配回预测表。
我认为这个语句将作为连接值使用select来获取与历史记录匹配所有主题的ID,但也许我的THEN语句是错误的,所以我得到'子查询返回多个值错误'(也许我的WHEN语句中需要一个WHERE子句?):
sed -e 's/@//g'
请提出任何建议。
答案 0 :(得分:1)
我认为您通常会使用day
执行此类操作:
date
您的问题并未提供有关如何关联表格的信息,但这似乎是大方向。
答案 1 :(得分:0)
这可能是您尝试做什么的正确语法
SELECT CASE WHEN SubjectName LIKE '%History%'
THEN SubjectsID ELSE intSubjectID END AS RESULT FROM subjects
答案 2 :(得分:0)
如果我理解正确的话。你要做的是:
表格主题中的所有行:
1,如果subjectName包含' History',则返回其SubjectsID
2,如果subjectName不包含' History',则返回一个值(intSubjectID)。我将在这里使用0作为intSubjectId。
以下是我的想法:
SELECT CASE WHEN SubjectName LIKE '%History%' THEN SubjectsID ELSE 0 END
FROM Subjects
答案 3 :(得分:0)
所以我的预感是正确的。我只需要在我的THEN Select语句中添加一个where子句:
SELECT (CASE WHEN (SELECT SubjectName FROM subjects) LIKE '%History%'
THEN (SELECT SubjectsID FROM Subjects **WHERE SubjectName='History'** )
ELSE intSubjectID
END)