J'ai une colonne appelée superviseure code> à partir d'une table jobdata code> dans une base de données SQL Server. Dans ce Supervisor Code> Colonne Les enregistrements sont du format ci-dessous. DANNYL
ADITYAG
SAMMYS
BOBBYJ
4 Réponses :
Vous pouvez utiliser la solution suivante à l'aide de car il ressemble à la colonne ... et une autre possibilité d'utiliser gauche code> et droit code> pour obtenir les parties du nom. En utilisant inférieur code> Vous pouvez convertir les caractères majuscules en minuscules: superviseure code> contient des valeurs vides Vous pouvez également utiliser la solution suivante Sans calcul et ne pas échouer sur les valeurs vides: p> Stuff code> : P> SELECT LOWER(LEFT(STUFF(Supervisor, 1, 0, RIGHT(Supervisor, 1)), LEN(Supervisor)))
FROM JobData
Je reçois une erreur lorsque la conversion de Varcharne en Integer. Le champ que j'utilise pour la conversion est de type Varchar, à la conversion de Varcharne en entier échoue.
Sélectionnez Basse (droite (superviseur, 1) + Gauche (superviseur, len (superviseur))) de Jobdata Il s'agit de la déclaration SQL que j'ai utilisée et cela fonctionne. Merci pour votre aide
Votre requête fonctionne bien sur la démo avec des valeurs fournies. Votre requête fournie ne fonctionne pas comme décrit. Vous devez utiliser len-1 code> - vous obtenez jbbobj au lieu de jbobby
Oui, j'ai le même résultat. Dannyl a entraîné ldannyl. Que je ne veux pas
Oui parce que vous manquez le -1 code> après la longueur. - Sélectionnez Basse (Superviseur, 1) + Gauche (superviseur, len (superviseur) -1)) de Jobdata Code>
Si je l'utilise, je reçois une erreur "Paramètre de longueur non valide transmis à la fonction de gauche ou de sous-chaîne" Comment puis-je éviter cela?
Vous devez filtrer les colonnes de superviseur vide. Voir la mise à jour et la démonstration.
Il y a probablement une meilleure façon de le faire, mais voici ma proposition.
SELECT lower(left(right('DANYL',1)+'DANYL',len('DANYL')))
Comme ça? :
SELECT LOWER(CONCAT(SUBSTRING([Supervisor], LEN([Supervisor]), 1),SUBSTRING([Supervisor], 1, ABS(LEN([Supervisor])-1)))) FROM TABLE
Utilisation de SUBSTRIND CODE> Vous pouvez obtenir le résultat attendu: ldanny
gaditya
ssammy
jbobby
colonne i>, pas de champ. rangs i>, pas d'enregistrements.
Comme cela ressemble à ce qu'ils sont prénom et première initiale du nom de famille, je suggérerais que ce que vous devriez vraiment faire est de les séparer en deux colonnes. Ensuite, vous pouvez créer une colonne calculée pour les placer dans le format que vous souhaitez. Si vous commencez avec des données correctement normalisées (ce n'est pas parce qu'il viole 1nf) ce genre de chose est facile.
Duplicaté possible de requête SQL à Apportez la dernière lettre dans une chaîne à la première lettre de la lettre
@Smor - belle prise! Ce n'est pas un duplicataire possible - C'est un duplicata b>. Mais si je comparais les réponses, ils sont bons et travaillent, mais les réponses ici sont très différentes et travaillent aussi.