2013-02-22 51 views
1

蔭面臨着一些邏輯issues.Hope有人能找到我給它一個解決方案如何從2個組合行的數量有限,查詢

蔭具有查詢

select FirstName||'|'||LastName||to_char(salary) 
from (select FirstName,LastName,salary from subs_tbl where salary=24000) 
union all select FirstName||'|'||''||to_char(salary) 
from (select FirstName,LastName,salary from subs_tbl where salary=30000) 

所以我的結果是

Satish|Kumar|24000 

Vimal|Kumar|24000 

Dinesh||30000 

讓我們說我有3行作爲我的結果,但我需要另一個條件添加到整個查詢,我只需要2行這些查詢的組合。

請幫我這個

回答

1

試試這個避免工會的您已經使用

SELECT FirstName||'|'||LastName||to_char(salary) 
FROM subs_tbl 
WHERE salary=24000 or salary=30000) 
LIMIT 2 

編輯

SELECT fullname 
FROM (SELECT firstname 
      || '|' 
      || lastname 
      || To_char(salary) AS 'FullName' 
    FROM (SELECT firstname, 
        lastname, 
        salary 
      FROM subs_tbl 
      WHERE salary = 24000) 
    UNION ALL 
    SELECT firstname 
      || '|' 
      || '' 
      || To_char(salary) AS 'FullName' 
    FROM (SELECT firstname, 
        lastname, 
        salary 
      FROM subs_tbl 
      WHERE salary = 30000)) 
WHERE rownum <= 5; 

希望這有助於

+0

我不能使用這個堂妹我的要求是博的結果這就是爲什麼我使用UNION所有的功能,從選擇部分看到它的不同,因爲我已經加入了兩個查詢select FirstName ||'|'|| LastName || to_char(salary)並選擇FirstName ||' |'||''|| to_char(薪水) – Meera 2013-02-22 11:06:13

+0

這也只會給你組合記錄。你需要結果還是前兩名的隨機記錄? – Meherzad 2013-02-22 11:07:34

+0

事情是我的選擇條款在兩個是不同的首先我concarchating名字|姓氏|工資和第二個查詢是concatinating名字||薪水,在這裏姓氏不應該顯示和查詢應該返回在第一線只有當工資是24000和查詢應該返回第二種方式,只有工資是30000 – Meera 2013-02-22 11:42:07

1
select FirstName||'|'||LastName||to_char(salary) 
from (select FirstName,LastName from subs_tbl where salary=24000) 
union all select FirstName||'|'||''||to_char(salary) 
from (select FirstName,LastName from subs_tbl where salary=30000) limit 0,2 
+0

試試這個添加限制0,2 – Athi 2013-02-22 09:54:43

+0

我試過這個建議,我得到錯誤1001:SQL語句之前或之後的語法錯誤:「0」,字符位置:185以及我需要限制的行數是一個動態值,它將傳遞給正在使用的過程。注意:我正在使用Oracle時間表來執行它。 – Meera 2013-02-22 10:51:45

+0

你爲什麼要使用union? – Athi 2013-02-22 11:33:43