2013-01-03 68 views
0

我有一列(狀態),並且該值將等待或on_process或完成。我會檢查velue是否在等待,所以我會得到最大數量(例如,waiting1,waiting2 - >因此最大值正在waiting2),然後我會+1它的最大值,所以下一個狀態將等待3 ..如何檢查特定列上的當前值(SQL服務器)

col_status
waiting1
waiting2
on_process
完成
.......

這是我的代碼:

create PROCEDURE SP_queue 
AS 
BEGIN 
    DECLARE @NEWID VARCHAR(5); 
    select @NEWID = max(convert(int,SUBSTRING(status, 8, 2))) FROM myTable 

SELECT 'Waiting'+convert(VARCHAR, @NEWID+1) 
END 

但如果該列有其他值(例如。 on_process),我有錯誤.. 所以任何人都可以幫助我如何檢查使用if語句,如果值正在等待,那麼將得到最大值,如果該值是on_process /完成然後什麼也不做。

謝謝..

回答

1

與嘗試,其中條件:

SELECT 
    @NEWID = max(convert(int,SUBSTRING(status, 8, 2))) 
FROM myTable 
WHERE [status]='Waiting' 
+0

非常感謝techdo ... 工作完美.. :) – asik

+0

歡迎您@asik :) – TechDo

0

我會改變使用字符串數字。爲每個狀態設置一些特殊值,即。在100以下,除了等待以外,還有100,101,102 ......等待鏈。它會更容易和更清潔。

相關問題