MW211 EXIT

devlog
MSSQL/文字列をいい感じで数値変換
2022年11月29日
JavaScriptのparseInt()のように、文字列込みの数値の文字列を
数値にいい感じで変換するには、TRANSLATE()を使えば実現できる。
けど、ちとめんどくさい。(もっといい方法がありそうだが)
例)「1個」→「1」
┌──────────────────────────────────────┐
│SELECT [文字列],                                                            │
│       CONVERT([int],                                                       │
│               REPLACE(TRANSLATE([文字列],                                  │
│                                 [除外文字],                                │
│                                 REPLICATE(' ', LEN([除外文字]))            │
│                       ),                                                   │
│                       ' ',                                                 │
│                       '')                                                  │
│       ) AS [数値]                                                          │
│    FROM (                                                                  │
│        SELECT [文字列],                                                    │
│               TRANSLATE([文字列],                                          │
│                         '0123456789',                                      │
│                         REPLICATE(' ', 10)) AS [除外文字]                  │
│            FROM (                                                          │
│                VALUES                                                      │
│('1個'),                                                                    │
│('全23セット')                                                              │
│            ) AS [表]([文字列])                                             │
│    ) AS [表]                                                               │
└──────────────────────────────────────┘
分類:MSSQL