À la suite de ma requête, j'ai 3 valeurs dans une colonne. J'aurais besoin d'abréger et de retourner les valeurs de colonne. Pour par exemple. Dire que mon résultat est Centre mondial de commerce J'aurais besoin d'être imprimé comme wtc p>
4 Réponses :
Vous pouvez utiliser La nécessité de quelque chose comme ça suggère que vous voulez une table de référence pour n'importe quelle entité. Vous constaterez peut-être que plusieurs requêtes finissent par faire la même chose - puis si une quatrième valeur est ajoutée, beaucoup de code doit changer. P> p> case code> expressions pour ceci:
J'essaie avec la déclaration de cas, je manque quelque chose avec la syntaxe. J'utilise quelque chose comme "Sélectionnez case quand .. Alors .. finissez comme Col_Name de Table_Name '
Voici ce que je viens de faire pour vous, cela fonctionne bien sur SQL Server, si vous utilisez autre chose d'autre, vous devrez peut-être changer de choses mineures, mais cela ne devrait pas être aussi difficile. N'oubliez pas de changer la taille de Varcharne pour s'adapter à la colonne de votre base de données.
DECLARE @return VARCHAR(30) DECLARE @loop INT DECLARE @myString VARCHAR(30) SET @return = '' -- The variable that will be returned SET @myString = 'World Trade Center' -- Your original value SET @loop = LEN(@myString) - LEN(REPLACE(@myString,' ','')) + 1 -- Calculate the nombre of spaces to know how many times to loop DECLARE @count INT = 1; WHILE @count <= @loop -- While u haven't parsed all words of the original string BEGIN SET @return = SUBSTRING(PARSENAME(REPLACE(@myString, ' ', '.'), @count), 1, 1) + @return -- Add the first letter of each word to the return variable SET @count = @count + 1; END; SELECT @return -- And there you got 'WTC', you can use it as you want
Que diriez-vous d'un peu d'expression régulière? Qu'est-ce que ça fait? p>
regexp_substr code> dans la ligne 9 fait) li>
substr code> in ligne 9 fait) li>
listagg code> fait) li>
ul> p>
Je ne suis pas sûr de ce qui s'est mal passé plus tôt et qu'est-ce que j'ai fait maintenant. Mais j'ai essayé d'utiliser l'expression de cas et maintenant cela a fonctionné. Merci à tous pour vos entrées. P>
Modifier la question Ajouter quelques échantillons de données et le résultat souhaité serait utile.
Regarde le mot-clé de cas
S'il vous plaît Modifier B> Votre question (en cliquant sur le Modifier Lien ci-dessous) et ajoutez un Data et la sortie attendue basée sur ces données. texte formaté s'il vous plaît, Pas de shots d'écran . ( Modifier Votre question - do pas b> code postal ou informations supplémentaires dans Commentaires)
Bonjour, j'ai peur si je suis autorisé à mettre toute la requête que j'ai essayée. Je ne sais pas si cela aiderait. J'ai utilisé des requêtes imbriquées et capables d'obtenir le résultat de la requête. Mais je voudrais que les valeurs soient renommées. Pour par exemple. Mes valeurs (à la suite de la requête) constituent une contribution volontaire supplémentaire, mais je voulais qu'il soit imprimé en tant que AVV. J'utilise la déclaration de cas mais en vain
J'utilise la base de données Oracle
Veuillez ajouter quelques exemples de valeurs que vous souhaitez modifier. Un exemple simple devrait faire. Vous pouvez utiliser la clause
code> comme @unhandledexcepsan dit.Plan d'achat d'argent (PPE) de contribution volontaire (AVC) (PPE) -> Voici mes valeurs. Je voulais juste que cela soit retourné comme AVC, EPP et MPP dans une colonne. J'ai déjà essayé d'utiliser la déclaration de cas