oracle查询:多行子查询返回多个行

oracle查询:多行子查询返回多个行

1.子查询

查询嵌套,一个查询作为另一个查询的条件、表。
多行子查询通常作为另一个查询的表使用;单行子查询可以作为另一个查询的条件使用。

SELECT
	decode(
		( SELECT nvl( a.idenno, '11' ) FROM com_patientinfo a WHERE a.card_no = c.card_no ),
		'11',
		( SELECT t.id || '_' FROM SJPT_HOSPITAL t ) || c.card_no,
		( SELECT a.idenno FROM com_patientinfo a WHERE a.card_no = c.card_no ) 
	) IDCARD,
	(
	SELECT
	CASE
			
		WHEN
			length( g.idenno ) = 18 THEN
				'01' ELSE '99' 
			END 
			FROM
				fin_opr_register g 
			WHERE
				g.clinic_code = c.clinic_code 
				AND g.trans_type = '1' 
				AND ROWNUM = 1 
			) CARDTYPE,
			(
			SELECT
			CASE
					
				WHEN
					length( g.idenno ) = 18 THEN
						g.idenno ELSE ( SELECT t.id || '_' FROM SJPT_HOSPITAL t ) || g.card_no 
					END 
					FROM
						fin_opr_register g 
					WHERE
						g.clinic_code = c.clinic_code 
						AND g.trans_type = '1' 
						AND ROWNUM = 1 
					) CARDNO 
				FROM
					fin_opb_feedetail c 
				WHERE
				c.clinic_code IS NOT NULL 
	AND c.days > 1

所以单行子查询返回多个行就很好理解了,作为另一个查询的条件的子查询返回多个值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值