我有一個查詢,我從前端獲得一些字符串,並嘗試從數據庫中檢索一些記錄。問題是我添加了一些重複的字符串,在檢索記錄時被忽略。我希望重複數據以及我的應用程序。Oracle獲取'IN'條款中提到的所有記錄
SELECT c.id,c.cptcode,c.cptname,c.patorder,c.ubcode,p.cptprice,u.description
FROM mstcpt c,
(select * from mstcptprice
where hospitalid = 1034
and transactionby ='[email protected]') p ,
(SELECT * FROM mstub04) u
WHERE c.cptcode IN ('00','70010 - 76499','00400 - 00479','00100 - 00228',
'00100 - 00228','00400 - 00479','70010 - 76499', '01670','00','00')
AND c.cptcode = p.cptcode(+)
and c.ubcode=u.code(+)
這些都是我從前端獲取字符串:
'00'
'70010 - 76499'
'00400 - 00479'
'00100 - 00228'
'00100 - 00228'
'00400 - 00479'
'70010 - 76499'
'01670'
'00'
'00'
我得到的結果目前是:
ID CPTCODE CPTNAME PATORDER UB04CODE CPTPRICE DESCRIPTION
31287 00100 - 00228 head1 Lab
31288 00400 - 00479 thorax1 Lab
31530 01670 SHOULDER VEIN SURG Anesthesia 400
31204 70010 - 76499 diagnostic imaging Radiology
所需的輸出:
ID CPTCODE CPTNAME PATORDER UB04CODE CPTPRICE DESCRIPTION
31287 00100 - 00228 head1 Lab
31287 00100 - 00228 head1 Lab
31288 00400 - 00479 thorax1 Lab
31288 00400 - 00479 thorax1 Lab
31530 01670 SHOULDER VEIN SURG Anesthesia 400
31204 70010 - 76499 diagnostic imaging Radiology
31204 70010 - 76499 diagnostic imaging Radiology
我怎樣才能得到所有的數據是我與我在前端添加它的次數相提並論?
假設你的查詢實際上有'in'而不是'like'。我想我理解你的意思,但是你能否展示理想的結果;或者最好創建一個更簡單的測試用例來證明這個問題?以及如何從前端傳遞字符串 - 作爲綁定變量,嵌入查詢中的數組? –
謝謝,現在改變了。 – Suman
你說,如果'IN'子句具有相同的值_twice_,你也希望結果_duplicated_? 'IN'在邏輯上形成多個'OR'條件,所以可能是唯一的值列表。因此,使用這些值生成一個視圖並將它們與您的表結合起來。 –