• Aucun résultat trouvé

String_Split

Dans le document Démarrer avec Microsoft SQL Server (Page 138-143)

Le type de données renvoyé dépend des types de données d'entrée - renvoie nvarchar si l'une des valeurs d'entrée est nvarchar ou varchar sinon.

Renvoie NULL si l'un des paramètres d'entrée est NULL

String_Split

SQL Server 2016

Divise une expression de chaîne à l'aide d'un séparateur de caractères. Notez que STRING_SPLIT()

est une fonction table et doit donc être utilisée dans la clause FROM . Paramètres:

chaîne. Toute expression de type caractère ( char , nchar , varchar ou nvarchar ) 1.

séparateur. Une expression de caractère unique de n'importe quel type ( char(1) , nchar(1) ,

varchar(1) ou nvarchar(1) ). 2.

Retourne une table de colonne unique où chaque ligne contient un fragment de la chaîne. Le nom des colonnes est value et le type de données est nvarchar si l'un des paramètres est nchar ou

nvarchar , sinon varchar .

L'exemple suivant sépare une chaîne en utilisant l'espace comme séparateur:

SELECT value FROM STRING_SPLIT('Lorem ipsum dolor sit amet.', ' ');

Résultat: value --- Lorem ipsum dolor sit amet.

Remarques:

La fonction STRING_SPLIT est disponible uniquement sous le niveau de compatibilité 130 . Si le niveau de compatibilité de votre base de données est inférieur à 130, SQL Server ne pourra pas trouver et exécuter la fonction STRING_SPLIT . Vous pouvez modifier le niveau de compatibilité d'une base de données à l'aide de la commande suivante:

ALTER DATABASE [database_name] SET COMPATIBILITY_LEVEL = 130

SQL Server 2016

Les anciennes versions du serveur SQL n'ont pas de fonction de chaîne de caractères intégrée. Il existe de nombreuses fonctions définies par l'utilisateur qui traitent le problème de la division d'une chaîne. Vous pouvez lire l'article d'Aaron Bertrand « Split strings» dans le bon sens - ou la meilleure façon de comparer certaines d'entre elles.

Str

Renvoie les données de caractères ( varchar ) converties à partir de données numériques. Paramètres:

expression flottante. Un type de données numérique approximatif avec un point décimal. 1.

longueur. optionnel. La longueur totale de l'expression de chaîne qui renverrait, y compris les chiffres, le point décimal et les espaces de début (si nécessaire). La valeur par défaut est 10.

2.

décimal. optionnel. Le nombre de chiffres à droite du séparateur décimal. Si elle est supérieure à 16, le résultat sera tronqué à seize places à droite du point décimal. 3. SELECT STR(1.2) -- Returns ' 1' SELECT STR(1.2, 3) -- Returns ' 1' SELECT STR(1.2, 3, 2) -- Returns '1.2' SELECT STR(1.2, 5, 2) -- Returns ' 1.20' SELECT STR(1.2, 5, 5) -- Returns '1.200' SELECT STR(1, 5, 2) -- Returns ' 1.00' SELECT STR(1) -- Returns ' 1'

Quotename

Renvoie une chaîne Unicode entourée de délimiteurs pour en faire un identificateur SQL Server délimité valide.

chaîne de caractères. Chaîne de données Unicode, 128 caractères maximum ( sysname ). Si une chaîne de saisie dépasse 128 caractères, la fonction renvoie null .

1.

personnage de citation. Facultatif Un seul caractère à utiliser comme délimiteur. Peut - être un guillemet simple ( ' ou ``), un crochet gauche ou à droite ( { , [ , ( , < ou > , ) , ] , } ) ou une double guillemet ( " ). Toute autre valeur renvoie null La valeur par défaut est entre crochets.

2.

SELECT QUOTENAME('what''s my name?') -- Returns [what's my name?] SELECT QUOTENAME('what''s my name?', '[') -- Returns [what's my name?] SELECT QUOTENAME('what''s my name?', ']') -- Returns [what's my name?] SELECT QUOTENAME('what''s my name?', '''') -- Returns 'what''s my name?' SELECT QUOTENAME('what''s my name?', '"') -- Returns "what's my name?" SELECT QUOTENAME('what''s my name?', ')') -- Returns (what's my name?) SELECT QUOTENAME('what''s my name?', '(') -- Returns (what's my name?) SELECT QUOTENAME('what''s my name?', '<') -- Returns <what's my name?> SELECT QUOTENAME('what''s my name?', '>') -- Returns <what's my name?> SELECT QUOTENAME('what''s my name?', '{') -- Returns {what's my name?} SELECT QUOTENAME('what''s my name?', '}') -- Returns {what's my name?} SELECT QUOTENAME('what''s my name?', '`') -- Returns `what's my name?`

Soundex

Renvoie un code à quatre caractères ( varchar ) pour évaluer la similarité phonétique de deux chaînes.

Paramètres:

expression de caractère. Une expression alphanumérique de données de caractères. 1.

La fonction soundex crée un code à quatre caractères basé sur la manière dont l'expression des caractères retentirait au moment de son utilisation. le premier caractère est la version majuscule du premier caractère du paramètre, les 3 autres sont des nombres représentant les lettres de l'expression (sauf a, e, i, o, u, h, w et y sont ignorés) .

SELECT SOUNDEX ('Smith') -- Returns 'S530' SELECT SOUNDEX ('Smythe') -- Returns 'S530'

Différence

Renvoie une valeur entière ( int ) qui indique la différence entre les valeurs soundex de deux expressions de caractère.

expression de caractère 1. 1.

expression de caractère 2. 2.

Les deux paramètres sont des expressions alphanumériques des données de caractère. L'entier retourné est le nombre de caractères dans les valeurs soundex des paramètres

identiques, donc 4 signifie que les expressions sont très similaires et 0 signifie qu'elles sont très différentes. SELECT SOUNDEX('Green'), -- G650 SOUNDEX('Greene'), -- G650 DIFFERENCE('Green','Greene') -- Returns 4 SELECT SOUNDEX('Blotchet-Halls'), -- B432 SOUNDEX('Greene'), -- G650

DIFFERENCE('Blotchet-Halls', 'Greene') -- Returns 0

Format

SQL Server 2012

Retourne une valeur NVARCHAR formatée avec le format et la culture spécifiés (si spécifié). Ceci est principalement utilisé pour convertir les types date-heure en chaînes.

Paramètres:

value . Une expression d'un type de données pris en charge à formater. les types valides sont listés ci-dessous.

1.

format Un NVARCHAR format NVARCHAR . Voir la documentation officielle Microsoft pour les

chaînes au format standard et personnalisé . 2.

culture Facultatif argument nvarchar spécifiant une culture. La valeur par défaut est la culture de la session en cours.

3.

RENDEZ-VOUS AMOUREUX

En utilisant des chaînes de format standard:

DECLARE @d DATETIME = '2016-07-31'; SELECT

FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result' -- Returns '7/31/2016'

,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result' -- Returns '31/07/2016' ,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result' -- Returns '31.07.2016'

,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result' -- Returns '2016/7/31' ,FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result' -- Returns 'Sunday, July 31, 2016' ,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result' -- Returns '31 July 2016' ,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result' -- Returns 'Sonntag, 31. Juli 2016'

Utiliser des chaînes de format personnalisées:

SELECT FORMAT( @d, 'dd/MM/yyyy', 'en-US' ) AS 'DateTime Result' -- Returns '31/07/2016' ,FORMAT(123456789,'###-##-####') AS 'Custom Number Result' -- Returns '123-45-6789',

,FORMAT( @d,'dddd, MMMM dd, yyyy hh:mm:ss tt','en-US') AS 'US' -- Returns 'Sunday, July 31, 2016 12:00:00 AM'

,FORMAT( @d,'dddd, MMMM dd, yyyy hh:mm:ss tt','hi-IN') AS 'Hindi' -- Returns रविवार, जुलाई 31, 2016 12:00:00 पूर्वाह्न

,FORMAT ( @d, 'dddd', 'en-US' ) AS 'US' -- Returns 'Sunday' ,FORMAT ( @d, 'dddd', 'hi-IN' ) AS 'Hindi' -- Returns 'रविवार'

FORMAT peut également être utilisé pour formater CURRENCY , PERCENTAGE et NUMBERS .

DEVISE

DECLARE @Price1 INT = 40

SELECT FORMAT(@Price1,'c','en-US') AS 'CURRENCY IN US Culture' -- Returns '$40.00' ,FORMAT(@Price1,'c','de-DE') AS 'CURRENCY IN GERMAN Culture' -- Returns '40,00 €'

Nous pouvons spécifier le nombre de chiffres après la décimale.

DECLARE @Price DECIMAL(5,3) = 40.356

SELECT FORMAT( @Price, 'C') AS 'Default', -- Returns '$40.36' FORMAT( @Price, 'C0') AS 'With 0 Decimal', -- Returns '$40' FORMAT( @Price, 'C1') AS 'With 1 Decimal', -- Returns '$40.4' FORMAT( @Price, 'C2') AS 'With 2 Decimal', -- Returns '$40.36'

POURCENTAGE

DECLARE @Percentage float = 0.35674

SELECT FORMAT( @Percentage, 'P') AS '% Default', -- Returns '35.67 %' FORMAT( @Percentage, 'P0') AS '% With 0 Decimal', -- Returns '36 %' FORMAT( @Percentage, 'P1') AS '% with 1 Decimal' -- Returns '35.7 %'

NOMBRE

DECLARE @Number AS DECIMAL(10,2) = 454545.389

SELECT FORMAT( @Number, 'N','en-US') AS 'Number Format in US', -- Returns '454,545.39' FORMAT( @Number, 'N','en-IN') AS 'Number Format in INDIA', -- Returns '4,54,545.39' FORMAT( @Number, '#.0') AS 'With 1 Decimal', -- Returns '454545.4'

FORMAT( @Number, '#.00') AS 'With 2 Decimal', -- Returns '454545.39'

FORMAT( @Number, '#,##.00') AS 'With Comma and 2 Decimal', -- Returns '454,545.39' FORMAT( @Number, '##.00') AS 'Without Comma and 2 Decimal', -- Returns '454545.39' FORMAT( @Number, '000000000') AS 'Left-padded to nine digits' -- Returns '000454545'

Liste de types de valeurs valides: ( source )

Category Type .Net type --- Numeric bigint Int64 Numeric int Int32 Numeric smallint Int16 Numeric tinyint Byte Numeric decimal SqlDecimal Numeric numeric SqlDecimal Numeric float Double Numeric real Single Numeric smallmoney Decimal

Numeric money Decimal Date and Time date DateTime Date and Time time TimeSpan Date and Time datetime DateTime Date and Time smalldatetime DateTime Date and Time datetime2 DateTime Date and Time datetimeoffset DateTimeOffset

Notes IMPORTANTES:

FORMAT renvoie NULL pour les erreurs autres qu'une culture non valide. Par exemple, NULL est renvoyé si la valeur spécifiée dans le format n'est pas valide.

FORMAT repose sur la présence du CLR (Common Language Runtime) .NET Framework. •

FORMAT s'appuie sur les règles de formatage CLR qui imposent que les deux-points et les points doivent être échappés. Par conséquent, lorsque la chaîne de format (deuxième paramètre) contient deux points ou un point, le signe deux-points ou le point doivent être précédés d'une barre oblique inverse lorsqu'une valeur d'entrée (premier paramètre) est du type de données temporel.

Voir aussi Formatage de la date et de l'heure à l'aide de l' exemple de documentation FORMAT .

Dans le document Démarrer avec Microsoft SQL Server (Page 138-143)

Documents relatifs