簡體   English   中英

MS Access SQL IIF優化

[英]MS Access SQL IIF optimization

給定此表,我有一個查詢,當另一列為NULL時,該查詢使用IIF從一列中提取值。

COL_A,COL_B
NULL,10
12,NULL
14,NULL
NULL,16

SELECT iif(COL_A IS NULL, COL_B, COL_A);

Results:
10
12
14
16

我要解決的問題是如何在直接SQL中執行此操作。 有辦法嗎? 通常我不會介意使用了幾次,但我們有咳嗽 86 IIF語句大規模查詢,它變得高昂的運行。 有任何想法嗎?

您可以使用NZ()

 select nz(COL_A, COL_B)

如果您的查詢需要在一個查詢中執行86個不同的測試,那么我認為數據體系結構存在缺陷,您可以通過使用“ Case”方法編寫自定義函數來縮短SQL的過程,該方法可以逐步完成所有驗證並返回結果。 但是,這只會改善SQL的外觀,並不會真正改善性能。 沒有列出86個IIF的列表很難說,但我認為您需要查看數據結構以查看是否可以從表級別進行改進。

假設只有一列具有實際值,則可以將它們串聯起來,因為空值會壓縮。 選擇COL_A||COL_B||COL_C||COL_D||....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM