• Sql判断是否为数字类型


    前景提要:现有一批房屋数据,房屋的计量单位字段定义为Square,字段类型是varchar(50)。为的是便于用户输入资料:房屋单位可能是平米,那输入的数据就是28.5等等之类的数字。亦可能是 1 间。

    客户要求:有面积的房屋显示面积,没有面积、以间为单位的房屋显示为0.

    解决方法如下:

    create proc Asset_QueryFenlistForReport
    (

      @pi_Action varchar(100),

      @pi_PropertyCode varchar(100),
      @pi_pageIndex INT,
      @pi_pageSize INT,
      @po_recordCount BIGINT OUTPUT
    )

    as
        DECLARE @pt_StartRowIndex INT
        DECLARE @pt_EndRowIndex INT
     
       SET @pt_StartRowIndex = (@pi_pageIndex - 1) * @pi_pageSize + 1
       SET @pt_EndRowIndex = @pi_pageIndex * @pi_PageSize
       IF @pi_Action = 'getlist'
     BEGIN
      SELECT * FROM
          (
            SELECT     Asset_ShopInfo.RentStatus, Asset_ShopInfo.RefRental, Asset_ShopInfo.BuildingCode, Asset_ShopInfo.ShopCode, Asset_ShopInfo.Square,
                          Asset_Contract.RendStartDate, Asset_Contract.RendEndDate, Asset_ShopInfo.PropertyCode
               ,'SquareNew'=(
               case 

    --使用函数ISNUMERIC(参数)
             when ISNUMERIC ([Square])=0 then '0'

    --当输入表达式得数为一个有效的整数、浮点数、money 或 decimal 类型,那么 ISNUMERIC 返回 1;否则返回 0。
             when ISNUMERIC ([Square])>0 then [Square]
             end
             ),
             'RentStatuss' = (
             CASE 
             WHEN RentStatus = 0 THEN '空置'
             WHEN RentStatus = 1 THEN '预定'
             ELSE
              '已租'
             End),
                        'YearRefRental'=(RefRental * 12),
       ROW_NUMBER() OVER (ORDER BY Asset_Contract.RendStartDate DESC) AS RowIndex
        FROM         Asset_Contract INNER JOIN
                          Asset_ContractShopInfo ON Asset_Contract.ContractCode = Asset_ContractShopInfo.ContractCode RIGHT OUTER JOIN
                          Asset_ShopInfo ON Asset_ContractShopInfo.ShopCode = Asset_ShopInfo.ShopCode
        where Asset_ShopInfo.propertycode = @pi_propertycode
    )bb
    WHERE RowIndex BETWEEN @pt_StartRowIndex AND @pt_EndRowIndex
      
      --得到总数

       SELECT @po_recordCount = COUNT(*)
    FROM         Asset_Contract INNER JOIN
                          Asset_ContractShopInfo ON Asset_Contract.ContractCode = Asset_ContractShopInfo.ContractCode RIGHT OUTER JOIN
                          Asset_ShopInfo ON Asset_ContractShopInfo.ShopCode = Asset_ShopInfo.ShopCode
    where Asset_ShopInfo.propertycode = @pi_propertycode

     END 

  • 相关阅读:
    invalid byte 1 of 1-byte UTF-8 sequence
    MySQL的时间进位问题
    MyBatis返回主键
    No matching bean of type [xx] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency
    在eclipse中下载包含子模块(Submodules)的git项目
    ERWin & ERStudio图里的实线和虚线的含义[转]
    Win7玩游戏偶尔自动跳转到桌面的解决办法[转]
    SpringMVC静态资源处理[转]
    RocketMQ术语[转]
    手机收不到验证码
  • 原文地址:https://www.cnblogs.com/howie/p/2654396.html
Copyright © 2020-2023  润新知