繁体   English   中英

访问语句转换为Sql

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM