回答編集履歴

3

修正

2017/11/16 10:21

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -22,23 +22,23 @@
22
22
 
23
23
  ---
24
24
 
25
- 数値を全て空文字にして、結果が''なら全て数字、
25
+ 数値と空白を全て空文字にして、結果が''なら全て数字、
26
26
 
27
27
  ・数値に変換して文字に変換(0サプレス)
28
28
 
29
- それ以外は数字を除去
29
+ それ以外は数字と空白を除去
30
30
 
31
31
  前回同様に試せていません。
32
32
 
33
33
  ```SQL
34
34
 
35
- case when translate(ID,'0123456789','')='' then
35
+ case when translate(ID,'0123456789 ','')='' then
36
36
 
37
37
  convert(varchar, convert(int, ID))
38
38
 
39
39
  else
40
40
 
41
- translate(ID,'0123456789','')
41
+ translate(ID,'0123456789 ','')
42
42
 
43
43
  end
44
44
 

2

修正

2017/11/16 10:21

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -22,17 +22,17 @@
22
22
 
23
23
  ---
24
24
 
25
- 数値を全て空文字にして、文字数なら全て数字
25
+ 数値を全て空文字にして、結果''なら全て数字、
26
26
 
27
27
  ・数値に変換して文字に変換(0サプレス)
28
28
 
29
29
  それ以外は数字を除去
30
30
 
31
- 前回同様に試せていません。※空文字に対してlen()で0かどうかが気になる点
31
+ 前回同様に試せていません。
32
32
 
33
33
  ```SQL
34
34
 
35
- case when len(translate(ID,'0123456789',''))=0 then
35
+ case when translate(ID,'0123456789','')='' then
36
36
 
37
37
  convert(varchar, convert(int, ID))
38
38
 

1

修正

2017/11/16 10:19

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -17,3 +17,29 @@
17
17
  case when replicate('0',len(ltrim(rtrim(ID))))=ltrim(rtrim(ID)) then '0' else replace(ltrim(rtrim(ID)),'0','') end
18
18
 
19
19
  ```
20
+
21
+ 修正
22
+
23
+ ---
24
+
25
+ 数値を全て空文字にして、文字数が0なら(全て数字)、
26
+
27
+ ・数値に変換して文字に変換(0サプレス)
28
+
29
+ それ以外は数字を除去
30
+
31
+ 前回同様に試せていません。※空文字に対してlen()で0かどうかが気になる点
32
+
33
+ ```SQL
34
+
35
+ case when len(translate(ID,'0123456789',''))=0 then
36
+
37
+ convert(varchar, convert(int, ID))
38
+
39
+ else
40
+
41
+ translate(ID,'0123456789','')
42
+
43
+ end
44
+
45
+ ```