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 .