A
という文字は常に同じ位置にあり、それ以降の文字はの整数であると仮定すると、です。
その後、あなたはこれを行うことができます。
WITH CTE AS
(
SELECT
WOCode,
CAST(SUBSTRING(WOCode, CHARINDEX('A', WOCode) + 1,
LEN(WOCode) - CHARINDEX('A', WOCode) + 1) AS INT) AS DisplayOrder
FROM
WO
)
SELECT *
FROM CTE
ORDER BY DisplayOrder;
Demo
結果:
| WOCode |
|----------|
| 39660A1 |
| 39660A2 |
| 39660A3 |
| 39660A4 |
| 39660A5 |
| 39660A6 |
| 39660A7 |
| 39660A8 |
| 39660A9 |
| 39660A10 |
| 39660A11 |
あなたがためにも非整数値にキャストを使用した結果かもしれないエラーを回避するためにTRY_CAST
を使用することができます(@ zamboneeに感謝の意):
WITH CTE AS
(
SELECT
WOCode,
CASE
WHEN TRY_CAST(WOCode AS INT) IS NULL
THEN CAST(SUBSTRING(WOCode,
CHARINDEX('A', WOCode) + 1,
LEN(WOCode) - CHARINDEX('A', WOCode) + 1) AS INT)
ELSE 0
END AS DisplayOrder
FROM
WO
)
SELECT *
FROM CTE
ORDER BY DisplayOrder;
updated demo
「SQLサーバーを介してソートする」とは、「ORDER BY」節を意味しますか?あなたはC#の答えやSQLの答えをお探しですか?何を試しましたか?どこから始めますか? – Plutonix
はい私はOrder By By節を意味します。 SQLやC#の何かは問題ありません。 – SanamShaikh
まだ何も進んでいません - 何がソートされていますか? * Natural Sort * - 多くの良い答えがここにあります – Plutonix