在C#中,我們可以寫SQL的下通CASE語句
switch(num)
{
case 0:
case 1: // do something; break;
case 2:
............
...........
case n: // do something break;
default: //do something; break;
}
如何能夠做到在SQL SERVER類似這樣的東西?
我不是在談SQL SERVER中編寫CASE的簡單方法。我在談論如果我需要在2個或更多個案例中執行相同的操作之王,就像我在C#代碼片段中展示的那樣,如何在SQL CASE中執行類似的操作?
編輯:
我得到了一些很好的答案,從這裏開始了。我如何轉換以下
SELECT CASE
WHEN [A]= num THEN '-' ELSE '' END [A],
CASE WHEN [B]= num THEN '-' ELSE '' END [B],
CASE WHEN [C]= num THEN '-' ELSE '' END [C],
CASE WHEN [D]= num THEN '-' ELSE '' END [D]
...成類似:
SELECT CASE WHEN [A],
CASE WHEN [B],
CASE WHEN [C],
CASE WHEN [D] = num THEN '-' ELSE '' END [A] or [B] or [C] or [D]
其實我需要這一個PIVOT查詢。昨晚我解決了這個問題。但我不相信這種寫作方式。因爲每次我都在做同樣的事情。那麼有沒有更好的方式來呈現這個?
不知道你在說什麼行爲。你得到的switch語句(一旦我們添加了編譯所需的中斷)直接映射到一個簡單的TSQL case語句。嘗試提供一些編譯的C#以及想要複製的行爲。 – 2009-10-21 02:53:37
請注意,C#FWIW不支持貫穿性。 – 2009-10-21 02:54:43
我知道這有點晚,但是你可以在when語句中使用像'or'這樣的邏輯表達式來引入由同一操作處理的多個條件。 – deutschZuid 2012-01-18 00:42:26