2 回答

TA貢獻1816條經驗 獲得超4個贊
我設法寫了一些有用的東西,并根據您的輸入將空字符串和默認值替換為超出范圍的數字。這是最終代碼:
DECLARE @defaultPersons int = 2;
@forDecisionTreeHouseTypeReplNulls =
SELECT [InstallationId],
[Persons],
(
(Func<string, int?>)
(inputString => // input_parameter
{
int _pers;
return ! int.TryParse([Persons], out _pers) || _pers <= 0 ?
@defaultPersons :
_pers > 10 ?
10 :
_pers;
}
)
) ([Persons]) AS [AdjPersons]

TA貢獻1993條經驗 獲得超6個贊
TryParse不是您可以直接調用的功能之一。它必須包裝為內聯函數。一個簡單的例子:
@output =
? ? SELECT FirstName,
? ? ? ? ? ? ? ?(
? ? ? ? ? ? ? ? (Func<string, int?>)
? ? ? ? ? ? ? ? (inputString =>? // input_paramater
? ? ? ? ? ? ? ? ? ? {?
? ? ? ? ? ? ? ? ? ? ? ? int outputValue;
? ? ? ? ? ? ? ? ? ? ? ? return int.TryParse(inputString, out outputValue) ? (int?)outputValue : (int?)null;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ?)
? ? ? ? ? ? ) (Salary) AS someDate
? ? FROM @Employees;
- 2 回答
- 0 關注
- 172 瀏覽
添加回答
舉報