0
votes

Ajouter des nombres devant une colonne

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


4 commentaires

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 ...


5 Réponses :


2
votes

Vous pouvez utiliser gauche () & faire la concaténation: xxx


0 commentaires

0
votes

Vous avez besoin de 2 requêtes de mise à jour. Essayez comme: xxx


0 commentaires

2
votes

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 


0 commentaires

0
votes

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


1 commentaires

cas expression , pas de déclaration.



0
votes

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  


2 commentaires

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