簡體   English   中英

SQL 不同的查詢取決於參數? [復制]

[英]SQL different queries depending on parameter? [duplicate]

這個問題在這里已經有了答案:

我有一個相同的查詢,但需要根據哪個參數進行一些更改。 我怎樣才能做到這一點?

就像是

CASE WHEN @LocalDetailLevel = 'master' THEN 
BEGIN
...
END
CASE WHEN @LocalDetailLevel = 'size' THEN 
BEGIN
...
END
CASE WHEN @LocalDetailLevel = 'color'
BEGIN
...
END

然后在每個開始/結束語句中都有一個完整的查詢,其中包含 select 和 from 以及所有內容。 這是正確的方法嗎? 還是我必須使用 if 語句? 如果是這樣,它的語法是什么?

另外,有誰知道 sql 查詢將如何為此優化? 它會僅針對其中一個參數/查詢進行優化嗎?

CASE是一個表達式,因此不用於控制邏輯流。

CASE 可用於任何允許有效表達式的語句或子句。 例如,您可以在 SELECT、UPDATE、DELETE 和 SET 等語句中以及在 select_list、IN、WHERE、ORDER BY 和 HAVING 等子句中使用 CASE

對於您的問題,您將使用IF

語法非常相似...

IF @LocalDetailLevel = 'master' 
BEGIN
...
END

IF @LocalDetailLevel = 'size'
BEGIN
...
END

暫無
暫無

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

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