回答編集履歴
1
質問に対する追記
test
CHANGED
@@ -48,3 +48,44 @@
|
|
48
48
|
|
49
49
|
UPDATEするデータの抽出ができたのでUPDATEします。
|
50
50
|
※余談ですがカラム名も一緒にSELECTに追加すると数値化する前のものが見えて便利かもしれないです。
|
51
|
+
----
|
52
|
+
#追記分
|
53
|
+
>アルファベットが複数文字ならばそのアルファベットの後ろが数値であることも条件にいれて調べることで取得可能です。
|
54
|
+
>ISNUMERIC関数とLEFTを組み合わせることで実装可能かと思います。
|
55
|
+
質問があったので、上記に対する追記をします。
|
56
|
+
例として
|
57
|
+
|項目の値1|項目の値2|項目の値3|
|
58
|
+
|:--|:--:|--:|
|
59
|
+
||||
|
60
|
+
A0009|AA003|AAA05
|
61
|
+
|
62
|
+
があるとし、'AA'を取得したいとします。
|
63
|
+
|
64
|
+
```SQL
|
65
|
+
WHERE LEFT(項目名,LEN('AA')) = 'AA'
|
66
|
+
-- または
|
67
|
+
WHERE LEFT(項目名,2) = 'AA'
|
68
|
+
```
|
69
|
+
上記だとAAA05も取得してしまうので、
|
70
|
+
3文字目が数字かどうかをチェックします。
|
71
|
+
```SQL
|
72
|
+
LEFT(項目名,3)
|
73
|
+
```
|
74
|
+
とすると
|
75
|
+
3文字とってしまうのでRIGHTを組み合わせて
|
76
|
+
その3文字の右から1文字を取得します。(SUBSTRINGで一気にやっても良いと思いますが分かりやすそうなこちらを説明します)
|
77
|
+
|
78
|
+
|
79
|
+
```SQL
|
80
|
+
RIGHT(LEFT(項目名,3),1)
|
81
|
+
|
82
|
+
```
|
83
|
+
これで3文字目の文字だけを取得することができました。
|
84
|
+
ISNUMERIC関数を使い判定することで数字なら1文字列なら0を返してくれるので
|
85
|
+
```SQL
|
86
|
+
WHERE
|
87
|
+
LEFT(項目名,LEN('AA')) = 'AA'
|
88
|
+
AND
|
89
|
+
ISNUMERIC(RIGHT(LEFT(項目名,3),1))=1
|
90
|
+
```
|
91
|
+
とすることで取得可能です。
|