不确定在这种情况下如何使用 Decode、NVL 和/或 isNull(或其他内容?)
我有一个特定产品的订单表和一个正在销售的产品表。 (这不是理想的数据库结构,但这超出了我的控制范围。)我想做的是通过产品编号将订单表外部连接到销售表,但我不想包含销售表中的任何特定数据,如果连接存在,我只想要 Y,如果输出中不存在,我只想要 N。谁能解释一下我如何在 SQL 中做到这一点?
提前致谢!
I have a table of orders for particular products, and a table of products that are on sale. (It's not ideal database structure, but that's out of my control.) What I want to do is outer join the order table to the sale table via product number, but I don't want to include any particular data from the sale table, I just want a Y if the join exists or N if it doesn't in the output. Can anyone explain how I can do this in SQL?
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您应该能够使用
CASE
构造,它看起来像这样:You should be able to use the
CASE
construct, and it would look something like this:我通常在这种情况下使用 NVL2...
会返回这个:-
I nornally use NVL2 for this type of situation...
Would return this:-
尝试(未经测试):
NVL 会将 'p.product_num' 中的 null 转换为 'X',这将与 DECODE 中的 'X' 进行比较,生成 'N';非空产品编号将是一个数字,不等于“X”,因此将生成“Y”。
Try (untested):
The NVL will translate nulls in the 'p.product_num' to 'X', which will compare equal to 'X' in the DECODE, generating 'N'; non-null product numbers will be a number, not equal to 'X', and hence will generate a 'Y'.