2014-07-23 76 views
0

我有一個類似下面的表。我試圖根據代碼列對數據進行排序。如果代碼的長度小於或等於5,那麼代碼應該按原樣排序,如果代碼長度大於5,則在排序時從代碼中移除2個數字。使用iff語句訪問SQL查詢

sno Code 
    1 17750 
    2 17775 
    3 63204A06 
    4 63204A07 
    5 F16D078 
    6 8186 
    7 8100 
    8 63513A52 

我的SQL查詢

SELECT sno, iif(Len([Code])<=5,[Code],Mid([Code],3)) AS Codeno FROM table1 

而更多的條件與代碼列,以滿足中,如果代碼是字母開頭,那麼它應該只能刪除書(起始位置)。排序結果應該看起來像

sno Code 

    1 17750 
    2 17775 
    3 204A06 
    4 204A07 
    5 16D078 
    6 8186 
    7 8100 
    8 513A52 

如何在上述查詢中指定相同的iff條件。

回答

1

假設你離開的信,如果[代碼]爲5個字符或更少:

SELECT sno, 
iif(Len([Code])<=5,[Code],iif(ASCII([Code])>57,Right([Code],Len([Code])-1),Mid([Code],3))) 
AS Codeno FROM table1 
+0

感謝。使用ASCII進行小修正,完美工作。在Access中,它將作爲ASC。 – sam