Sql 在执行case时,when和else部分都在oracle中工作
我在select查询中使用了case when,它同时执行when和else部分。请给出一个解决方案Sql 在执行case时,when和else部分都在oracle中工作,sql,oracle,Sql,Oracle,我在select查询中使用了case when,它同时执行when和else部分。请给出一个解决方案 SELECT column2 FROM template_Data_Details_bkp WHERE template_id = (SELECT template_id FROM templates WHERE template_name = 'Testing')
SELECT column2
FROM template_Data_Details_bkp
WHERE template_id = (SELECT template_id
FROM templates
WHERE template_name = 'Testing')
AND column1 = 'EM1'
AND (CASE
WHEN (column2 = 'stock' AND column1 = 'EM1')
THEN
column2
ELSE
(SELECT column2
FROM template_data_details_bkp
WHERE template_id =
(SELECT template_id
FROM templates
WHERE template_name = 'Testing')
AND column1 = 'EM1'
AND column4 = 'YES')
END) = column2;
这张桌子看起来像
专栏1
专栏2
专栏4
EM1
股票
不
EM1
拉加维
对
也许你有两排 在第一行中,case语句进入
WHEN(column2='stock'和column1='EM1')
在第二行,语句进入ELSE
每行有一个结果
如果只想看到一行,请跳过else语句,或清除WHERE语句,使其更简单
问候。我不太清楚。你能更好地解释一下这个问题吗?您是否有意外的结果、错误等?另外,您可以发布所有相关表格的样本数据吗?例外结果-表格实际结果中的第一行-获取两行在不知道相关表格内容的情况下,我们唯一知道的是您的where条件匹配两行,而不是您预期的一行,但是很难理解为什么在这种特殊情况下,where条件的结果是:where column1='EM1'和column2=column2,所以结果集中会有两行。