醫(yī)保信息返回多行 單行子查詢返回多行是什么意思?
單行子查詢返回多行是什么意思?查詢語(yǔ)句,子查詢的結(jié)果是作為父查詢的一個(gè)列,所以也要求返回單行,當(dāng)子查詢出現(xiàn)多條返回記錄時(shí),同樣會(huì)出現(xiàn)單行子查詢返回多個(gè)行的錯(cuò)誤提示。單行子查詢返回多個(gè)行?這個(gè)錯(cuò)誤是由于
單行子查詢返回多行是什么意思?
查詢語(yǔ)句,子查詢的結(jié)果是作為父查詢的一個(gè)列,所以也要求返回單行,當(dāng)子查詢出現(xiàn)多條返回記錄時(shí),同樣會(huì)出現(xiàn)單行子查詢返回多個(gè)行的錯(cuò)誤提示。
單行子查詢返回多個(gè)行?
這個(gè)錯(cuò)誤是由于你的查詢結(jié)果有多行造成的,因?yàn)槟阋猧nto給變量a,所以只能查出一行,應(yīng)該在where條件處控制,確保查詢結(jié)果只有一樣數(shù)據(jù)。
這樣就不會(huì)報(bào)錯(cuò)了。如果不能確定記錄為一行,可以這樣寫:select 字段1 into 變量a from 表a where 條件 and rownum = 1pl/sql中單行子查詢返回多個(gè)行是什么意思?
類似于這種select *from tableawhere id = (select id from tableb) //等號(hào)換成 in 即可。where id in (select id from tableb)
sql報(bào)錯(cuò)單行子查詢返回多個(gè)行?
首先看你的數(shù)據(jù),就一張表,不知道你為什么要自己跟自己關(guān)聯(lián)進(jìn)行查詢,明明可以一次查出來(lái),非得多關(guān)聯(lián)一次。select grade from sc where cno="c001"這樣就搞定了。然后說說返回多行的問題,因?yàn)榈诙螆?zhí)行的時(shí)候,沒有限制cno等于c001,導(dǎo)致把所有cno的列多查出來(lái)了,所以返回多行,而第一次執(zhí)行,至返回一條cno為c001的數(shù)據(jù)。給你個(gè)建議,估計(jì)你是把項(xiàng)目中的一段代碼粘貼出來(lái)了,原來(lái)的代碼中,可能有其他關(guān)聯(lián)條件或者邏輯算法,導(dǎo)致你非得sc表和sc表進(jìn)行了一次關(guān)聯(lián),盡量不要用這種關(guān)聯(lián),如果數(shù)據(jù)量很大,這樣兩個(gè)大表關(guān)聯(lián)查詢,會(huì)很慢,性能肯定低。