Questione : Domanda di SQL - Autonumbering con il prefisso

Ciao gli esperti, il

I hanno bisogno dell'aiuto con una domanda.  Ho generato una domanda che esaminerà una parte e prendo il prefisso ed allora aggiungo una numerazione delle 7 cifre dopo quello a cui incremento auto da 1 qualunque è con gli zeri principali.  Ciò funziona bene, ma d'altra parte ci è un'edizione in cui ho bisogno di una circostanza.  Se l'elemento della parte è una parte fabbricata, la voglio usare che cosa numero è già là e riempirla ad una numerazione delle 7 cifre.  Sotto è un esempio: il

These è tutto parti non-fabbricate:

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

These è parti fabbricate e dovrebbe utilizzare la stessa numerazione ma il rilievo a 7 caratteri:

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

Here è la mia domanda originale: SOTTOSTRINGA del

SELECT (identificazione, 1, 3) + REPLICA (STREPTOCOCCO ( di ROW_NUMBER () SOPRA (DIVISORIO DA SUBSTRING (identificazione, 1, 3) ORDINE DA SUBSTRING (identificazione, 1, 3)), 7), '', “0„) COME NEW_ID
FROM PART

Now devo prendere la stessa parte, con la prima lettera 3 come prefisso ed allora che cosa numero numerico con 7 cifre lungamente.  Si noti che là sono una certa identificazione della parte con 4 lettere, dovrebbe prendere soltanto la prima lettera 3 ed allora ignorare qualsiasi altra cosa.  La seconda parte in cui prende il numero dovrebbe soltanto essere numerica ed allora assicurarsela lo riempie con gli zeri principali fino a 7 cifre lungamente con complessivamente 10 cifre.  Esempio:  ABC0001234
class= del

Risposta : Domanda di SQL - Autonumbering con il prefisso

sure:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
dichiarare la tabella del @t (identificazione varchar (20))

inserire nei valori del @t (“ABC1234„)
inserire nei valori del @t (“ABC2123„)
inserire nei valori del @t (“ABC398„)
inserire nei valori del @t (“DBC32„)
inserire nei valori del @t (“DBC45„)

inserire nei valori del @t (“ACDD2343„)
inserire nei valori del @t (“ACDB2321„)
inserire nei valori del @t (“BAC122„)



SELEZIONARE L'identificazione, la SOTTOSTRINGA (identificazione, 1, 3) p
, ROW_NUMBER () SOPRA (DIVISORIO DA SUBSTRING (identificazione, 1, 3) ORDINE DA SUBSTRING (identificazione, 1, 3)) Marina militare
, SOTTOSTRINGA (IDENTIFICAZIONE, 1, 3) + DI DESTRA (“000000000„ +  
   CASO QUANDO L'IDENTIFICAZIONE GRADICE “[A-Z] [A-Z] [A-Z] [0-9] %„ 
   ALLORA SOTTOSTRINGA (SOSTITUIRE (IDENTIFICAZIONE, “-„, ''), 4, 100)
   SOTTOSTRINGA ALTRA (SOSTITUIRE (IDENTIFICAZIONE, “-„, ''), 5, 100)
   CONCLUDER, 7) x
Da @t
Altre soluzioni  
 
programming4us programming4us