看看 sql 中 CASE 的用法 我详细你就不纠结了请教下: 你的语句中 SELECT document_number FROM ecs_wip_confirm_doc WHERE 1 = 1 AND document_id =l.confirm_document_id 这句话里面条件 1=1 是用来干啥的?
可以使用 NVL 来解决
WHERE 1 = 1 AND document_id =l.confirm_document_id 这里是取所有当document_id =l.confirm_document_id 表数据!
问题在于这是个查询语句,查询语句的case后面的then是否可以接查询语句
可以连接 但是连接查询的语句只能返回一行数据 select CASE WHEN xcdd.from_organization_id = 8595 THEN (SELECT eib.bin from apps.ecs_inv_bin_details eib where ...) end a from xxwi_sub_transfer_h_v h
当xcdd.from_organization_id = 8595的时候,你会取eib.bin 这个字段;
那么 != 8595的时候怎么办呢?这个字段为空?
你的语句中
SELECT document_number
FROM ecs_wip_confirm_doc
WHERE 1 = 1
AND document_id =l.confirm_document_id
这句话里面条件 1=1 是用来干啥的?
可以使用 NVL 来解决
AND document_id =l.confirm_document_id
这里是取所有当document_id =l.confirm_document_id
表数据!
可以连接 但是连接查询的语句只能返回一行数据
select CASE WHEN xcdd.from_organization_id = 8595
THEN (SELECT eib.bin
from apps.ecs_inv_bin_details eib
where ...) end a
from xxwi_sub_transfer_h_v h