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