Sql server 2008 没有SQL Server中的Case语句,如何实现此目标

Sql server 2008 没有SQL Server中的Case语句,如何实现此目标,sql-server-2008,case-statement,Sql Server 2008,Case Statement,除了下面的案例陈述,还有其他选择吗 *挑选 如果Etype=1,则为“地震” 否则“正常” 结束 作为Etype,类似这样的东西就可以了,尽管不确定不使用case有什么好处: select substring('EarthquakeNormal',power(sign(Etype-1),2)*11,11) 我假设Etype总是>=0,如果大于0,则不需要电源 另外,请注意,此解决方案适用于SQL Server 2008,但从SQL Server 2012开始,至少还有3种更好的方法。IIF,选

除了下面的案例陈述,还有其他选择吗

*挑选 如果Etype=1,则为“地震” 否则“正常” 结束
作为Etype,类似这样的东西就可以了,尽管不确定不使用case有什么好处:

select substring('EarthquakeNormal',power(sign(Etype-1),2)*11,11)
我假设Etype总是>=0,如果大于0,则不需要电源


另外,请注意,此解决方案适用于SQL Server 2008,但从SQL Server 2012开始,至少还有3种更好的方法。IIF,选择,甚至解析名称。

我想你问的问题还不够清楚。我想在变量(列)中用地震替换1,用其他替换2,而不使用case语句,我可以使用SQL case语句来实现这一点。为Etype(类似EtypeMaster的东西)创建一个具有Id和Name列的查找表。Id为1和2,名称为“地震”和“正常”。现在,将当前查询与Id列上的此表联接,并选择Name列作为输出。请解释为什么要这样做。这毫无意义。比如说“我想在不使用+号的情况下添加两个数字”?