J'ai une colonne dans SQL Server et je tiens à ajouter 7 pour les mots qui commencent par A et ajouter 8 pour les mots qui commencent par t.
Voici ma colonne: p>
7add-on
7above
8tv
8their
french
5 Réponses :
Vous pouvez utiliser gauche () code> & faire la concaténation:
Vous avez besoin de 2 requêtes de mise à jour. Essayez comme:
Utilisez une expression de cas avec la sous-chaîne pour obtenir les résultats nécessaires.
select concat(
(case when substring(col,1,1)='a' then '7'
when substring(col,1,1)='t' then '8'
end
)
,col
) as modified_col
from table
Utilisez Case Déclaration pour vérifier le premier caractère, renvoyé par SUBSTRING Fonction et calculez un préfixe à ajouter à vos données:
select
case substring(column, 1, 1)
when 'a' then '7'
when 't' then '8' else '' end + column as NewColumn
from table
cas expression i>, pas de déclaration.
dans SQL Server 2008:
select
case when substring(column,1,1)='a' then concat( '7 ',column)
case when substring(column,1,1)='t' then concat( '8 ',column)
else column end as column from table
Les scripts que vous fournissez les deux mêmes. Aussi substr ne constitue pas une fonction SQL-Server. Je crois que vous vouliez dire sous-chaîne ().
Oui je voulais dire sous-chaîne (). Depuis que OP ne mentionne pas quelle version il utilise, j'ai écrit dans les deux versions
S'il vous plaît Modifier votre message et montrez-nous ce que vous avez déjà essayé et comment vos tentatives ont échoué.
Vous voulez renommer le nom de la colonne?
Utilisez une expression de cas, gauche () et Concat ().
Essayez-vous de stocker cela dans les données de chaîne elle-même? Comme une autre colonne aux côtés des données de chaîne? Dynamiquement, dans les résultats d'une requête contenant les données de chaîne? Autre chose? Modifier les données elles-mêmes ne semble pas sage ...