手记

MS SQL判断是否为Integer

在MS SQL中处理用户输入的数值是否为Integer,为了简化程序代码,可以使用下面函数。

IsIntegerCREATE FUNCTION [dbo].[IsInteger] 
(
  @Value NVARCHAR(4000)
) RETURNS NVARCHAR(4000)
AS
BEGIN
   DECLARE @ResultValue BIT = 1
   --如果IS NULL把值设为N''
   SET @Value = ISNULL(LTRIM(@Value), N'')
   --处理前导N'-'字符串,如果有,把它移除,这样才好做以下的判断。
   SET @Value = CASE WHEN SUBSTRING(@Value, 1, 1) = N'-' THEN SUBSTRING(@Value, 2, LEN(@Value) - 1) ELSE @Value END

    --如不是数据或为N''返加Faluse
   IF @Value LIKE '%[^0-9]%' OR @Value = N''
      SET @ResultValue = 0
   
   RETURN @ResultValue
END

 

0人推荐
随时随地看视频
慕课网APP