我需要從表1中選擇一些行讓我們說如果在表2中找到一個值。所以我想檢查值(我將從命令行輸入值)在Table 2中找到,然後從Table1中選擇行,如果沒有,我想從另一個表中選擇行。 我試過CASE,但是從我得到的結果來看,只有當你想檢查一個表內的值時纔有效。任何想法?如果在另一個表中找到記錄,請從表中選擇
3
A
回答
6
你可以做這樣的事情:
-- If value is found in table2, select from table1
select * -- <- use padding if necessary
from table1
where exists (select 1
from table2
where myField = value)
union all
-- If value is not found in table2, select from another_Table
select * -- <- use padding if necessary
from another_Table
where not exists (select 1
from table2
where myField = value)
1
該查詢將從Table1
如果存在Table3
:id
選擇,並從Table2
否則:
select *
from Table1
where exists
(
select *
from Table3
where id = :id
)
union all
select *
from Table2
where not exists
(
select *
from Table3
where id = :id
)
+0
感謝回答,但表1和表2不具有相同的列號或類型。我想單獨選擇其中之一。 –
相關問題
- 1. 如果在第一個表中找不到記錄,請從另一個表中選擇 - SQL Server 2012
- 2. 從不在另一個表中的表中選擇記錄
- 3. 如何從一個表中存在另一個表中選擇記錄
- 4. Mysql從另一個表記錄中找到一個表,並在此表中找到特定記錄
- 5. 如何從表中選擇記錄並插入到另一個表中?
- 6. 從表中選擇記錄,這不另一個表
- 7. 從另一個表比較一個字段中選擇記錄
- 8. 從一個表中選擇記錄
- 9. 如果在第一個表中不存在,則從另一個表中選擇記錄的最快方法
- 10. 如果結果不匹配,請從另一張表中選擇
- 11. 根據從另一個表中選擇的結果從一個表中選擇
- 12. 從另一個表中的列中選擇記錄等項目
- 13. 根據表B記錄從一個表中選擇記錄
- 14. SQL Server從另一個表中的一個表中選擇最高記錄
- 15. 從表中選擇記錄,如果某些價值存在,如果不是,請選擇其他記錄
- 16. SQL從一個表中選擇記錄,並以此作爲輸入到另一個表中刪除記錄
- 17. 在oracle中從一個表插入記錄到另一個表
- 18. 從另一個表中選擇不在另一個表中
- 19. 如何選擇不在另一個表中的記錄?
- 20. 從表中選擇記錄,其中兩列不存在於另一個表
- 21. 根據條件從另一個表中選擇特定記錄
- 22. 如何從多個記錄和表中選擇結果到一行中
- 23. 從表中選擇記錄如果表存在 - 在單一語句中
- 24. 如果在同一天可以找到多個記錄,請選擇一個值
- 25. 從一個表中選擇,如果在另一
- 26. 從一個表格中選擇所有記錄,並在其他表格中顯示該記錄是否在另一個表格中找到
- 27. 從一個表中選擇1條記錄,從另一個表中選擇0.n
- 28. 如果一個值等於另一個表中的值,請從其中一個表中選擇一個值
- 29. 如果值從另一個表中選擇,則更新表
- 30. 記錄從一個表到另一個
謝謝,但如果表格具有不同數量和/或類型的列,該怎麼辦? –
@Albano Vito:使用填充(添加NULL),強制轉換,例如:select id,null,comments ... union all select id,name,null –
非常感謝您:) –