簡體   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