2017-08-19 10 views
1

ORDER(アクセス - SQL)テーブルから、私はいくつかの値をフェッチするために、この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 

Googleを集中的に使用した後、私はIIF cそれはおそらく "6。 Genehmigung "将来的に私は固定位置のカスタム注文を使うことができません。"数字のcharで始まるすべての文字列を検索してASCをソートし、文字とソートASCで始まるすべての文字列を検索する "私は

任意のアイデア...失敗した?

答えて

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 

説明:最初の文字または最初の2文字が数値の場合は、最初のソート値を1に設定します。それ以外の場合はソート値を2に設定します。

+0

awesome !!!!魅力のように働き、説明に非常に感謝します。 :) "IFF"から "IIF"に名前を変更する必要がありました;) – Moritz

+0

アップデートをいただきありがとうございます。 – user681574

0

数字の並べ替え文字の前に、そうではない、この作品?

order by tbl_Projektphasen.Bezeichnung 
+0

残念ながら、これは上記の最初の出力になりません。 しかし、文字列が「多値フィールド」から来ていることがわかりました。これは多分問題です。 (新しいデータベースで試してみると、魅力的なように機能しています) – Moritz

関連する問題