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 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM