[英]access statement convert to Sql
我该如何转换为T-Sql?
IIf([ESSValue]<>0,Int([ESSValue]*100),"")
我认为以下内容几乎可以满足您的需求:
select coalesce(cast(EssValue * 100 as int), 0)
这是想法。 与零的比较并不重要,因为0倍的任何值都将为零。 iif()
返回一个整数(我认为),因为“ then”参数是整数。 空字符串将转换为零。
我不确定与MS Access有关的最新声明,但这不是iif()
在SQL Server中的工作方式。
我应该补充。 尽管我不赞成将iif()
用于条件表达式(因为case
是标准的且功能更强大),但SQL Server确实支持它。 所以你可以这样写:
IIf([ESSValue]<>0, cast([ESSValue]*100 as int), '')
注意:如前所述, ''
将被转换为0
。
CASE WHEN ESSValue <> 0
THEN CAST(ESSValue * 100 AS INT)
ELSE NULL
END as fieldname
对于case表达式,如果不满足任何条件,则默认值为NULL
,因此您实际上不需要ELSE
条件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.