我在SQL需要T-SQL CASE多個條件相同的結果
int caseSwitch = 1;
switch (caseSwitch)
{
case 1:
case 2:
case 3:
case 4:
Console.WriteLine("x");
break;
default:
Console.WriteLine("Default case");
break;
}
等價的C#代碼我有多個條件,相同的結果 ,我不想寫的所有代碼
case when cond1 then result1
when cond2 then result1
when cond3 then result1
....
end
有什麼想法? 感謝
抱歉,但我沒有得到你的想法 – Zyku 2012-02-22 08:39:30
@Zyku:在回答你接受,設定值(嚴格意義上)'(1,2,3,4)'是硬編碼到查詢。如果第二個查詢需要使用相同的一組值,那麼您可以複製+粘貼。當這組數值需要改變時,維護人員(不一定是你)將不得不搜索每個出現的集合(4,3,2,1)'(集合沒有命令!)並且改變它們。現在考慮SQL只有一個數據結構:表。數據集最好建模爲表格,例如使他們的價值觀和使用它們的代碼更容易維護。但對於小而穩定的套件可能會過度。 – onedaywhen 2012-02-22 09:13:59
我明白你的意思,但不是這種情況下,我需要一些簡單的價值觀:CASE WHEN DATA_TYPE IN( '焦', 'NCHAR') \t \t CASE WHEN DATA_TYPE IN( 'VARCHAR', '爲nvarchar') \t \t CASE WHEN DATA_TYPE ='xml' \t \t CASE當DATA_TYPE IN('bigint','decimal','float','int','money','numeric','real','smallint','smallmoney' 'TINYINT') \t \t CASE WHEN DATA_TYPE = '唯一標識符' \t \t CASE WHEN DATA_TYPE IN( '日期', '日期時間', 'DATETIME2', 'SMALLDATETIME', 'DATETIMEOFFSET') \t \t CASE WHEN DATA_TYPE ='bit' CASE WHEN DATA_TYPE ='varbinary' – Zyku 2012-02-22 10:51:05