我正在使用这个sql代码从表中获取一些值
SELECT tbl_Projektphasen.Bezeichnung, tbl_Projekttypen.ID_Projekttypen
FROM tbl_Projektphasen INNER JOIN tbl_Projekttypen ON tbl_Projektphasen.ID_Projektphasen = tbl_Projekttypen.moeglicheProjektphasen.Value
WHERE (((tbl_Projekttypen.ID_Projekttypen)=2))
这给了我以下输出
1. Genehmigung
2. Genehmigung
3. Genehmigung
Konstruktion
Machbarkeitsanalyse
Abgesagt
4. Genehmigung
5. Genehmigung
所以无论我尝试什么(ASC或DESC),我都无法获得所需的订单
1. Genehmigung
2. Genehmigung
3. Genehmigung
4. Genehmigung
5. Genehmigung
Abgesagt
Konstruktion
Machbarkeitsanalyse
经过一段时间的密集使用后,我遇到了IIF命令,但可能会有一个" 6。 Genehmigung"在将来,我无法使用固定头寸的自定义订单。我需要某种"搜索所有以数字字符开头的字符串并对ASC进行排序,然后搜索以字母开头的所有字符串并对ASC"进行排序。在这里我失败了......
有什么想法吗?
答案 0 :(得分:1)
这应该首先排序最多99的数值。
order by IIF( isnumeric( Mid(tbl_Projektphasen.Bezeichnung, 1, 1) ) or isnumeric( Mid(tbl_Projektphasen.Bezeichnung, 1, 2) ), 1, 2), tbl_Projektphasen.Bezeichnung
解释:如果第一个字符或前两个字符是数字,则给它一个初始排序值为1 - 否则,给它一个排序值2.然后按实际字段排序。
答案 1 :(得分:0)
数字在字母前排序,所以这不起作用吗?
order by tbl_Projektphasen.Bezeichnung