我有一张如下表格。我试图根据代码列对数据进行排序。如果代码的长度小于或等于5,则代码应按原样排序,如果代码长度> 5,则在排序时从代码中删除2位数。
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条件。
答案 0 :(得分:1)
如果[code]不超过5个字符,则假设您保留该字母:
SELECT sno,
iif(Len([Code])<=5,[Code],iif(ASCII([Code])>57,Right([Code],Len([Code])-1),Mid([Code],3)))
AS Codeno FROM table1