cs_karn
Messages postés79Date d'inscriptionmardi 2 avril 2002StatutMembreDernière intervention 6 juillet 2009
-
27 déc. 2004 à 17:28
IgorN2004
Messages postés2Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention 7 août 2005
-
30 mai 2005 à 06:12
Bonjour,
Il y a t'il un equivalent aux fonctionx LPAD,RPAD avec sql server?
cs_karn
Messages postés79Date d'inscriptionmardi 2 avril 2002StatutMembreDernière intervention 6 juillet 2009 29 déc. 2004 à 14:02
Merci j'ai reussi a trouver ca dans l'aide :
Cet exemple complète à gauche des nombres dans la limite d'une longueur spécifiée lors de leur conversion d'un type de données numérique en type caractère ou Unicode.
USE Northwind
GO
DROP TABLE t1
GO
CREATE TABLE t1
(
c1 varchar(3),
c2 char(3)
)
GO
INSERT INTO t1 VALUES ('2', '2')
INSERT INTO t1 VALUES ('37', '37')
INSERT INTO t1 VALUES ('597', '597')
GO
SELECT REPLICATE('0', 3 - DATALENGTH(c1)) + c1 AS [Varchar Column],
REPLICATE('0', 3 - DATALENGTH(c2)) + c2 AS [Char Column]
FROM t1
GO
Sous SQL Server, les fonctions existent pour une partie de ces demandes :
RIGHT et LEFT
Cf Aide MSDN :
-------
RIGHT
Renvoie la partie d'une chaîne de caractères commençant au nombre de caractères spécifié par integer_expression, à partir de la droite.
Syntaxe
RIGHT ( character_expression , integer_expression )
Arguments
character_expression
Expression d'une donnée caractère. character_expression peut être une constante, une variable ou une colonne de données de type caractère ou binaire.
integer_expression
Position de départ, exprimée par un nombre entier positif. Si integer_expression est négative, une erreur est renvoyée.
Type des valeurs renvoyées
varchar
character_expression doit appartenir à un type de données explicitement convertible en varchar. Sinon, utilisez l'opérateur CAST pour convertir explicitement character_expression.
Notes
Les niveaux de compatibilité peuvent affecter les valeurs renvoyées. Pour plus d'informations, voir sp_dbcmptlevel.
Exemple
Cet exemple renvoie les cinq derniers caractères (les plus à droite) du prénom de chaque auteur.
USE pubs
GO
SELECT RIGHT(au_fname, 5)
FROM authors
ORDER BY au_fname
GO
Voici le jeu de résultats obtenu :
------------------
raham
Akiko
lbert
-----
Et LEFT :
-----
LEFT
Renvoie la partie de la chaîne character_expression commençant au premier caractère et contenant le nombre de caractères spécifié par integer_expression.
Syntaxe
LEFT ( character_expression , integer_expression )
Arguments
character_expression
Expression de caractères ou de données binaires. character_expression peut être une constante, une variable ou une colonne. character_expression doit être d'un type de données qui peut être converti implicitement en varchar. Dans le cas contraire, utilisez la fonction CAST pour convertir explicitement character_expression.
integer_expression
Nombre entier positif. Si integer_expression est négatif, une chaîne nulle est renvoyée.
Type des valeurs renvoyées
varchar
Notes
Les niveaux de compatibilité peuvent affecter les valeurs renvoyées. Pour plus d'informations sur les niveaux de compatibilité, voir sp_dbcmptlevel.
Exemple
A. Utilisation de LEFT avec une colonne
Cet exemple renvoie les cinq caractères de gauche du titre de chaque livre.
USE pubs
GO
SELECT LEFT(title, 5)
FROM titles
ORDER BY title_id
GO
Voici le jeu de résultats obtenu :
-----
The B
Cooki
You C
Strai
-----
Pour la completion (si tu recherches aussi cette partie, je pense qu'il faut voir du coté des fonction personnalisées de SQL Server.
IgorN2004
Messages postés2Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention 7 août 2005 30 mai 2005 à 06:12
Q.Il y a t'il un equivalent aux fonctionx LPAD,RPAD avec sql server?
R.Bien sûr !
Les fonctions Transact-SQL pour le traitement des chaînes de caractères
Mesdames et Messieurs,
Je bien voudrais vous proposer les fonctions Transact-SQL qui sont les suivants
GETWORDCOUNT() Counts the words in a string
GETWORDNUM() Returns a specified word from a string
AT() Returns the beginning numeric position of the first occurrence of a character expression within another character expression, counting from the leftmost character
RAT() Returns the numeric position of the last (rightmost) occurrence of a character string within another character string
CHRTRAN() Replaces each character in a character expression that matches a character in a second character expression with the corresponding character in a third character expression
STRFILTER() Removes all characters from a string except those specified
OCCURS() Returns the number of times a character expression occurs within another character expression (include overlaps)
PADL() Returns a string from an expression, padded with spaces or characters to a specified length on the left side
PADR() Returns a string from an expression, padded with spaces or characters to a specified length on the right side
PADC() Returns a string from an expression, padded with spaces or characters to a specified length on the both sides
PROPER() Returns from a character expression a string capitalized as appropriate for proper names
RCHARINDEX() Is similar to a built-in function Transact-SQL charindex but the search of which is on the right
ARABTOROMAN() Returns the character Roman number equivalent of a specified numeric expression (de 1 à 3999)
ROMANTOARAB() Returns the number equivalent of a specified character Roman number expression (de I à MMMCMXCIX)
AT, PADL, PADR, CHRTRAN, PROPER sont semblables aux fonctions Oracle PL/SQL INSTR, LPAD, RPAD, TRANSLATE, INITCAP
Plus de 2000 personnes ont déjà téléchargé ces fonctions. Qui sait, peut-être seront-ils utiles pour vous ?