2013-01-04 9 views
-3

je présente mes excuses, j'ai écrit ces questions sur mon train retour à la maison de mon téléphone, donc je n'avais pas mon code existant à portée de main. 1) Question 1: Diviser après chaque 6ème chiffre, je dois diviser mes colonnes après chaque 5ème chiffre pour que 123456 crée des colonnes, des 12345 et un deuxième avec 6, j'ai essayé d'utiliser le code ci-dessous sans résultat. il n'y a pas d'espaces ou de symboles, juste des chiffres.SQL divisé 2 colonnes en plusieurs colonnes

substring(COA.UserCode2,5,charindex('',COA.UserCode2)) as Account, substring(COA.UserCode2,6,charindex('',COA.UserCode2)) as Project

2) Question 2: Fractionnement après chaque *, je peux obtenir la première ci-dessous pour travailler (Fonds) mais mon centre de coûts et de la source ne fonctionne pas fondamentalement si j'ai une chaîne comme 1234 * 34 * 500, j'ai besoin de la colonne pour le fonds d'avoir 1234 (Ce je me suis déjà), mon centre de coûts à dire 34 et ma source à dire 500

substring(COA.UserCode3, 1,charindex('*',COA.UserCode3)) as Fund,
substring(COA.UserCode3, 3,charindex('*',COA.UserCode3)+1) as CostCenter,
substring(COA.UserCode3, 1,charindex('*',COA.UserCode3)) as Source

+0

Y a-t-il une question ici? Ou voulez-vous que quelqu'un d'écrire le code pour vous? – ryadavilli

+0

Veuillez rechercher BOL pour les fonctions substring(), charindex(), patindex() et vous trouverez tout ce dont vous avez besoin. SO n'est pas un service d'écriture de code – Raj

+0

@ryadvaville, je ne sais pas ce que vous voulez dire par je m'attends quelqu'un à écrire mon code pour moi, à mon avis c'était un forum pour poser des questions, et ma question était très claire 1) quelqu'un pourrait montrez-moi un échantillon de fendre une chaîne tous les 6 chiffres et 2) quelqu'un peut-il me montrer un échantillon de fendre une chaîne après chaque *. si c'est trop demander alors je suppose que j'ai mal compris quel est le but d'un forum. J'ai répondu à des centaines de questions dans de nombreux forums et je n'ai jamais ressenti le besoin de devenir intelligent avec quelqu'un, mais encore une fois, je suppose que vous savez tout Maître. –

Répondre

0

Pour la question 1, remplacer

charindex('',COA.UserCode2) 

avec

len(COA.UserCode2) 

(ou tout simplement coder en dur la longueur).

Pour la question 2, votre Substring paramètre Start pour les 2e et 3e colonnes doit prendre en compte la longueur des chaînes que vous avez déjà coupé dans les colonnes précédentes. Je coderais ceci avec des statuts de sélection imbriqués pour rendre le code moins maladroit.