SQL-編出最大值的編號,並往左補0成3 碼,若找不到最大值就帶入「001」
昨天搞了一個讓人很難維護的需求,
客戶要求針對編號要在新增時重編,
而且有固定格式,
在設計時發現若找不出最大值,
還要帶入「001」。
由於是在SQL新增時,
所以直接用SQL語法處理,
但不建議用此方法,
很難做維護,
但只有這一位客戶要求,
先以特例完成。
SQL:
(select case when max(NO) is not null then substring('000', 1, 3 - len(convert(nvarchar,(convert(int,substring(max(NO),len(max(NO))-1,2)))))) + convert(nvarchar(3), convert(nvarchar,(convert(int,substring(max(NO),len(max(NO))-1,2))))) else '001' end
from TB
我們是用max()判斷,再用case when轉成固定格式三碼,
注意,我們發現在使用max()時用group by會找不出值。
自我LV~