Introduction aux fonctions de chaîne communes de SQL Server

Les fonctions de chaîne SQL intégrées vous permettent de trouver et de modifier des valeurs de texte, telles que les types de données varchar et CHAR, dans SQLServer. En utilisant ces fonctions, vous pouvez modifier une valeur de texte telle que le changement « Smith, Joe « à » Joe Smith. »

Si vous ne connaissez pas les fonctions SQL, je vous recommande de regarder avec L’Introduction aux fonctions intégrées de SQL Server.

pour tirer le meilleur parti de cela et de nos autres leçons, assurez-vous de vous entraîner en utilisant les exemples!,

Tous les exemples de cette leçon sont basés sur Microsoft SQL Server Management Studio et la base de données AdventureWorks2012. Vous pouvez commencer à utiliser ces outils gratuits en utilisant mon Guide pour commencer à utiliser SQL Server.

Introduction aux fonctions de chaîne de SQL Server

Les fonctions de chaîne T-SQL sont utilisées pour manipuler ou renvoyer des informations sur les expressions de texte telles que les types de données CHAR et VARCHAR.

Il y a beaucoup de fonctions de chaîne dans SQL à votre disposition., Je voudrais généralement de les catégoriser comme:

  • Position
  • Transformation
  • Jeu de Caractères
  • Soundex

Toutes les fonctions sont répertoriées sur les Fonctions de Chaîne (Transact-SQL) de la page. Je recommanderais de visiter cette page pour en savoir plus sur chaque fonction.

plutôt que de réitérer ce matériel, nous allons nous concentrer sur les fonctions que j’ai vues dans couramment utilisées dans les affaires.

dans les tableaux suivants, j’ai classé les fonctions et les ai codées par couleur. Le code couleur correspond au capot probable que vous utiliseriez cette fonction particulière dans un environnement professionnel., Le vert est le plus susceptible d’être utilisé, et le rouge moins.

ce n’est pas une échelle stricte, et toutes les fonctions ont une utilisation dans une analyse de rentabilisation, mais je voulais un moyen de vous aider à gagner le terrain vers les plus pertinents.

Voici ma tentative:

SQL Server String Fonctions – Fonctions les plus Couramment Utilisées en Vert

les Fonctions utilisées pour trouver la Position

CHARINDEX

Le CHARINDEX fonction est utilisée pour trouver la position d’une chaîne dans une autre., Cela peut être pratique lorsque vous devez séparer les données par des tirets ou des virgules.

La forme générale de la fonction CHARINDEX est

CHARRINDEX(value to find, value to search)

dont la valeur est de trouver un ou plusieurs caractères que vous souhaitez trouver dans la valeur à rechercher.

Si la valeur est trouvée, la position de départ est renvoyée. Si la valeur n’est pas trouvée, 0 (Zéro) est renvoyé.

Si la valeur à rechercher ou la valeur à rechercher sont NULL, NULL est renvoyé.

CHARINDEX en action!,

LEN

La fonction LEN renvoie le nombre de caractères dans une chaîne.

dans l’exemple suivant, vous pouvez voir que la longueur de « SQL Server” est de 10.

Exemple de la fonction LEN

la Longueur est rarement utilisé seul. Il est utilisé principalement en conjonction avec d’autres fonctions, telles que gauche et droite.,

fonctions utilisées pour transformer des chaînes

gauche et droite

Les fonctions gauche et droite sont utilisées pour renvoyer le début ou la fin d’une chaîne.

LEFT renverra les caractères de début; tandis que RIGHT est utilisé pour renvoyer les caractères de fin.

la forme générale de la fonction de gauche est

LEFT(value, length)

où value est la chaîne avec laquelle vous travaillez et length est le nombre de caractères que vous souhaitez renvoyer depuis le début de value.,

Exemple de Fonction de GAUCHE

Si la longueur est supérieure au nombre de caractères de la valeur, alors l’ensemble de la chaîne est renvoyée.

Si length est négatif, une erreur est générée.

Si length ou value sont NULL, alors NULL est renvoyé.

la fonction chaîne droite fonctionne un peu comme la gauche, mais elle renvoie les caractères de fin par opposition au début.

SELECT RIGHT(‘SQL Rocks!’,6)

Renvoie la valeur ‘de Roches!,’

supposons que le responsable de Production veuille une liste distincte de tous les préfixes de numéro de produit. Comment pourriez-vous retourner cette liste?

Si vous regardez la Production.Product ProductNumber column value vous remarquerez que le préfixe est les deux premiers caractères. Donc, sachant ce que nous faisons maintenant à propos de la fonction de gauche, la solution est un jeu d’enfant!

Voici ce que vous pouvez écrire:

SELECT DISTINCT LEFT(ProductNumber,2)FROM Production.Product

La fonction LEFT renvoie les deux premiers caractères. Puisque nous utilisons L’opérateur DISTICT, les résultats en double sont éliminés du résultat.

OK alors maintenant le directeur de production devient fou!, Le dernier caractère du préfixe ProcuctNumber signifie beaucoup pour elle. Elle veut savoir quelles sont ces valeurs distinctes. Que pouvons-nous faire pour aider?

nous pouvons utiliser la gauche et la droite en conjonction. Nous savons déjà comment obtenir le plus de caractères à gauche, maintenant tout ce que nous devons faire est de prendre le dernier caractère de ce résultat et de le renvoyer comme indiqué ci-dessous.

Fonction d’Imbrication de caractères de retour.,

Voici la requête, vous pouvez utiliser:

SELECT DISTINCT RIGHT(LEFT(ProductNumber,2),1)FROM Production.Product

Comme d’autres fonctions, vous pouvez imbriquer des fonctions de chaînes de caractères. Rappelez-vous simplement que les résultats d’une fonction peuvent être utilisés dans une autre. Vous devriez lire ces expressions « à l’intérieur. »

sous-chaîne

LA FONCTION sous-chaîne est utilisée pour renvoyer des caractères à partir d’une autre chaîne.,

la forme générale de la fonction sous-chaîne est

SUBSTRING(value, position, length)

où value est la chaîne avec laquelle vous travaillez, position est le caractère pour commencer à renvoyer des caractères et length est le nombre de caractères à renvoyer.

Si length est négatif, une erreur est renvoyée.

Si la position ou la longueur sont NULL, alors NULL est renvoyé.

SUBSTRING Exemple

Par exemple,

SUBSTRING(‘SQL Server’,5,3)

renvoie ‘Ser’., C’est la séquence de trois caractères commençant en cinquième position.

la sous-chaîne est une forme généralisée des fonctions gauche et droite.

crédit supplémentaire – montrez comment la gauche et la droite peuvent être utilisées ensemble pour simuler une sous-chaîne. Montrez votre réponse dans les commentaires ci-dessous.

LEFT(‘SQL Server’,4) et SUBSTRING(‘SQL Server’,1,4) renvoient les quatre caractères de début.

le droit est un peu plus compliqué!

RIGHT(‘SQL Server’,4) peut être écrit comme sous-chaîne(‘SQL Server’,7,4)

qui dit de commencer à la 7ème position, puis de renvoyer les quatre caractères suivants., La forme générale pour cela, puisque vous ne connaîtrez pas toujours la longueur de la valeur, est

SUBSTRING(‘SQL Server’, LEN(‘SQL Server’)-4, 4)

Voici un exemple utilisant des colonnes SQL.

dont les résultats sont

résultats montrant la sous-chaîne identique à gauche et à droite

supérieur et inférieur

Les fonctions de chaîne supérieure et inférieure sont utilisé pour renvoyer des valeurs dont le caractère est en majuscules ou minuscules respectivement.,

la forme générale de la fonction supérieure est

UPPER(value)

où value est la chaîne avec laquelle vous travaillez.

si la valeur est NULL alors NULL est retourné.

la forme et le comportement de LOWER sont similaires.

Voici un exemple de requête:

Qui renvoie

Exemples d’utilisation SUPÉRIEURE et INFÉRIEURE

REMPLACER

La fonction de remplacement est bon lorsque vous souhaitez trouver un ou plusieurs caractères dans une sensation de brûlure et de les remplacer par d’autres caractères., Une application courante consiste à remplacer tous les tirets ‘-‘ par des espaces.

Voici la forme générale de la fonction REMPLACER

REPLACE (value, pattern, replacement)

Où la valeur est la chaîne de travailler avec, motif les parties de la chaîne que vous souhaitez rechercher et remplacer, et de remplacement correspond à la valeur à remplacer le modèle.

Si L’un des paramètres est NULL, REPLACE renvoie NULL.

Si le motif n’est pas trouvé, rien n’est remplacé et la valeur est renvoyée dans sa forme d’origine.,

en entreprise, vous rencontrerez des données provenant de deux systèmes distincts, tels que vos systèmes et les systèmes d’un client ou d’un fournisseur où les données sont traitées différemment. Cela peut causer des problèmes, surtout quand il s’agit de faire correspondre.

Une fois que le problème commun que j’ai vu se produit avec les numéros de pièce. Considérez Les Œuvres D’Aventure. Au sein de l’entreprise, les numéros de pièce sont formatés avec des tirets, tels que ‘AR-5381’; cependant, certains fournisseurs ont remplacé les tirets par des espaces comme ‘AR 5381’.,

avant de faire une correspondance de données à grande échelle, l’équipe de production souhaite fournir aux fournisseurs notre liste de pièces avec les tirets remplacés par des espaces.

Voici une requête que nous pourrions Exécuter pour le faire:

SELECT Name, ProductNumber, REPLACE(ProductNumber,'-',' ') as SupplierProductNumberFROM Production.Product

et le résultat que nous pouvons fournir aux fournisseurs est:

bien que vous ne puissiez pas avoir de motif vide, et si vous y réfléchissez, cela n’aurait pas trop de sens, vous pouvez remplacer valeur. Pourquoi? Eh bien, une bonne raison est de retirer les caractères d’une chaîne.,

dans L’exemple ProductNumber, il peut y avoir des cas où nous voulions utiliser le numéro de produit sans tirets. Cette requête pourrait être utilisée dans ce cas:

SELECT Name, ProductNumber, REPLACE(ProductNumber,'-','') as SupplierProductNumberFROM Production.Product

notez que deux guillemets simples ensemble comme ” représente une chaîne vide.

LTRIM et RTRIM

LTRIM et RTRIM sont utilisés pour supprimer les espaces de début et de fin de chaîne.

LTRIM est utilisé pour supprimer les espaces du début de la chaîne; tandis que RTRIM supprime les espaces de la fin.

La forme générale de LTRIM est

LTRIM(value)

Où la valeur est la chaîne que vous souhaitez travailler avec., Si la valeur est NULL, NULL est renvoyé.

par exemple, considérons

SELECT LTRIM(' Product Types')

qui renvoie ‘types de Produits’

Si vous souhaitez supprimer des espaces du début et de la fin d’une chaîne, vous pouvez nous les deux fonctions.

SELECT RTRIM(LTRIM(' Product Types '))

supprime les espaces de début et de fin.

ces fonctions sont utiles lors de l’importation de données à partir de fichiers texte, en particulier les fichiers formatés fixes.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *