我在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