Frage : Sql-Frage - Autonumbering mit Präfix

Hallo benötigen Experten,

I Hilfe bei einer Frage.  Ich verursachte eine Frage, die ein Teil betrachtet und nehme das Präfix und addiere dann die Nummerierung mit 7 Stellen nachher das, dem werden Selbststufensprung von 1 zu, was auch immer es mit führenden null ist.  Dieses funktioniert gut, aber andererseits gibt es eine Ausgabe, in der ich eine Bedingung benötige.  Wenn das Teileinzelteil ein fabriziertes Teil ist, wünsche ich es verwenden, was Zahl bereits dort ist und es zur Nummerierung mit 7 Stellen auffüllen.  Unter ist ein Beispiel:

These sind alle nicht-fabrizierte Teile:

ABC1234  --> ABC0000001
ABC2123  --> ABC0000002
ABC398    --> ABC0000003
DBC32      --> DBC0000001
DBC45      --> DBC0000002 sind

These fabrizierte Teile und sollten die gleiche Nummerierung aber Auflage zu 7 Buchstaben benutzen:

ACDD2343  --> ACD0002343
ACDB2321   -->ACD0002321
BAC122       -->BAC0000122

Here ist meine ursprüngliche Frage:

SELECT TEILKETTE (Identifikation, 1, 3) + VERDOPPELUNG (STR (ROW_NUMBER () VORBEI (FACH DURCH SUBSTRING (Identifikation, 1, 3) AUFTRAG DURCH SUBSTRING (Identifikation, 1, 3)), 7), '', „0“) ALS NEW_ID
FROM PART

Now muss ich das gleiche Teil, mit dem ersten Buchstaben 3 als Präfix nehmen und dann was numerische Zahl mit 7 Stellen lang.  Merken dass dort sind irgendeine Teil Identifikation mit 4 Buchstaben, sollte sie den ersten Brief 3 nur nehmen und was sonst auch immer dann ignorieren.  Das 2. Teil, in dem es die Zahl nimmt, sollte numerisch nur sein und sie dann sicherstellen auffüllt sie mit führenden null bis zu 7 Stellen lang mit insgesamt 10 Stellen.  Beispiel:  ABC0001234

Antwort : Sql-Frage - Autonumbering mit Präfix

sure:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
@t Tabelle (Identifikation varchar (20)) erklären

in @t Werte („ABC1234“) einsetzen
in @t Werte („ABC2123“) einsetzen
in @t Werte („ABC398“) einsetzen
in @t Werte („DBC32“) einsetzen
in @t Werte („DBC45“) einsetzen

in @t Werte („ACDD2343“) einsetzen
in @t Werte („ACDB2321“) einsetzen
in @t Werte („BAC122“) einsetzen



Identifikation, TEILKETTE (Identifikation, 1 VORWÄHLEN, 3) p
, ROW_NUMBER () ÜBER (FACH DURCH SUBSTRING (Identifikation, 1, 3) AUFTRAG DURCH SUBSTRING (Identifikation, 1, 3)) rn
, TEILKETTE (IDENTIFIKATION, 1, 3) + RECHT („000000000“ +  
   FALL, WENN IDENTIFIKATION „[A-Z] [A-Z] [A-Z] [0-9,] MÖGEN, %“ 
   DANN TEILKETTE ((IDENTIFIKATION, „-“, ''), 4, 100) ERSETZEN
   SONST TEILKETTE ((IDENTIFIKATION, „-“, ''), 5, 100) ERSETZEN
   BEENDEN, 7) x
Vom @t
Weitere Lösungen  
 
programming4us programming4us