none
有關SQL Max isnull 一問 RRS feed

  • 問題

  • 各位安,

    想請教以下sql 指令一問

    SELECT Max(isnull(A,0)) FROM table

    A是某table 欄位, 型別為varch

    程式執行時,會將撈回來的值+1再寫入新一筆

    但從1~10都沒有問題,但問題來了…

    當值到達10再下去應該是11…

    但不管我怎麼取…傳回來最大值都是9

    所以9+1再寫入table中…

    該欄位的值最大永遠都是10而已?不知問題出在哪?

    是A欄位字串要先轉成數值嗎?

    -請各位指教了-

    2011年11月1日 上午 05:37

解答

  • declare @t table (col1 varchar(10))
    declare @i int = 1
    while @i < 13
    begin	
    	insert into @t values(@i)
    	set @i = @i + 1
    	SELECT Max(isnull(cast(col1 as int),0)) FROM @t
    end
    
    
    


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    • 已標示為解答 菲羽 2011年11月1日 上午 06:22
    2011年11月1日 上午 06:02

所有回覆

  • declare @t table (col1 varchar(10))
    declare @i int = 1
    while @i < 13
    begin	
    	insert into @t values(@i)
    	set @i = @i + 1
    	SELECT Max(isnull(cast(col1 as int),0)) FROM @t
    end
    
    
    


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    • 已標示為解答 菲羽 2011年11月1日 上午 06:22
    2011年11月1日 上午 06:02
  • declare @t table (col1 varchar(10))
    declare @i int = 1
    while @i < 13
    begin	
    	insert into @t values(@i)
    	set @i = @i + 1
    	SELECT Max(isnull(cast(col1 as int),0)) FROM @t
    end
    
    
    


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    感謝大大的解答,問題解決了…
    2011年11月1日 上午 06:22