2017-10-02 3 views
0

Donc j'ai un nvarchar Datatype qui est un numéro de téléphone est actuellement dans le format de (123) 456-7891 mais je veux qu'il soit 1234567891 pas de parenthèses ou quelque chose. Certains des nombres ont des mots en avant comme ABC (123) 456-7891 < < Ce format est donc un nvarchar qui permet le nombre et la lettre mais je veux que le format du nombre soit sans mots spéciaux() - comment puis-je Convertissez-le j'ai essayé.SQL nvarchar Mise en forme

FORMAT(cast(PhoneNumber as numeric),'##########') as PhoneNumber 

Il sauve la procédure correctement, mais lorsque je tente de excute il le dit Error converting data type nvarchar to numeric j'ai essayé que FORMAT(PhoneNumber,'##########), mais il dit Argument data type nvarchar is invalid for argument 1 of format function. Je ne peux pas le faire fonctionner s'il vous plaît laissez-moi savoir si vous connaissez quelque chose à propos de ça.

+0

Étiquetez votre question avec la base de données que vous utilisez. –

+0

Voulez-vous également supprimer 'ABC'? –

+0

Non je ne sais pas ce que les chiffres et l'ABC avec ça –

Répondre

0

Il suffit d'utiliser replace():

select replace(replace(replace(PhoneNumber, '-', ''), ')', ''), '(', '') 

Vous ne pouvez pas convertir une chaîne qui contient '(' s, ')' s et '-' s à un certain nombre.

+0

Merci beaucoup. cela a fait le Trick mais certains comment il ne remplace pas les Spaces comment puis-je monter des Spaces aussi –

+0

Ajouter un autre replace() autour de ce que gordon a fourni, Replace (Gordon'sGreatReplace, '', ''). Remarquez que le premier '' a un espace. –

+0

remplacer (remplacer (remplacer (numéro de téléphone, '-', ''), ')', ''), '(', ''), ')', '') J'ai ceci mais Spaces encore entre 3 premiers chiffres et le reste est ok –