SQL In子句值
我有以下SQLSQL In子句值,sql,oracle,Sql,Oracle,我有以下SQL Select * from PS_VENDOR WHERE VENDOR IN ('111','222','333','444') 其中不存在444个供应商。但是当我运行SQL时,我应该从IN子句中获得所有供应商的所有4行,对于444,只需填充空白或“X” 我尝试了以下方法,但无效 Select * from PS_VENDOR WHERE NVL(VENDOR IN ('111','222','333','444'), 'X'); 使用CTE保存您的值,左键连接
Select *
from PS_VENDOR
WHERE VENDOR IN ('111','222','333','444')
其中不存在444个供应商。但是当我运行SQL时,我应该从IN子句中获得所有供应商的所有4行,对于444,只需填充空白或“X”
我尝试了以下方法,但无效
Select *
from PS_VENDOR
WHERE NVL(VENDOR IN ('111','222','333','444'), 'X');
使用CTE保存您的值,左键连接
with V1 as
(
select '111' as VV from dual
union all
select '222' as VV from dual
union all
select '333' as VV from dual
union all
select '444' as VV from dual
)
select VV, PS_VENDOR.*
from V1
left join PS_VENDOR
on VENDOR = VV
不能选择不存在的值。你必须以某种方式“创造”它。只是为了提醒你。当你提出一个问题并得到一个答案时,如果其中一个是正确的,你应该接受。你也可以投票选出有用的答案。你已经问了7个问题,但没有接受任何回答。这样的政策会阻止其他人回答你进一步的问题。干杯。谢谢你的反馈。我是这个团体的新成员,非常抱歉。你能告诉我怎么接受这个价格吗answers@KumarG若你们打开一个你们贴出来的问题,看看答案,每个答案的分数下面都有小记号。您单击“最佳答案”旁边的o,就这样。当您接受一个选项时,您将通过单击“答案”旁边的向上箭头获得向上投票的权限。看这里:然后你可以使用这个列表:接受前面问题的答案。干杯,非常感谢