Existe t-il une fonction transact sql (ou une astuce dans le cas échéant)
permettant d'incrémenter un Compteur alphabétique ?
Exemple de A -> B -> C .....-> AA ->.....AZ .... & ?
Toute suggestion me permettant d'explorer des possibilités me sauvera.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Med Bouchenafa
Brut de fonderie, il n'existe rien de tel à ma connaissance. Par contre, cela ne devrait pas être trop compliqué de développer une fonction qui prennent un entier et qui renvoie une chaîne de caractère suivant la règle que tu cites.
-- Bien cordialement Med Bouchenafa
"Pierre" a écrit dans le message de news:
Bonjour
Existe t-il une fonction transact sql (ou une astuce dans le cas échéant) permettant d'incrémenter un Compteur alphabétique ? Exemple de A -> B -> C .....-> AA ->.....AZ .... & ?
Toute suggestion me permettant d'explorer des possibilités me sauvera.
Thank !
Brut de fonderie, il n'existe rien de tel à ma connaissance.
Par contre, cela ne devrait pas être trop compliqué de développer une fonction qui prennent un
entier et qui renvoie une chaîne de caractère suivant la règle que tu cites.
--
Bien cordialement
Med Bouchenafa
"Pierre" <Pierre@discussions.microsoft.com> a écrit dans le message de news:
7074A392-5CC9-43C2-8646-1465987138E5@microsoft.com...
Bonjour
Existe t-il une fonction transact sql (ou une astuce dans le cas échéant)
permettant d'incrémenter un Compteur alphabétique ?
Exemple de A -> B -> C .....-> AA ->.....AZ .... & ?
Toute suggestion me permettant d'explorer des possibilités me sauvera.
Brut de fonderie, il n'existe rien de tel à ma connaissance. Par contre, cela ne devrait pas être trop compliqué de développer une fonction qui prennent un entier et qui renvoie une chaîne de caractère suivant la règle que tu cites.
-- Bien cordialement Med Bouchenafa
"Pierre" a écrit dans le message de news:
Bonjour
Existe t-il une fonction transact sql (ou une astuce dans le cas échéant) permettant d'incrémenter un Compteur alphabétique ? Exemple de A -> B -> C .....-> AA ->.....AZ .... & ?
Toute suggestion me permettant d'explorer des possibilités me sauvera.
Thank !
Nicolas LETULLIER
Bonjour,
Tu peux ajouter un champ IDENTITY en INTEGER qui te génèrera ta clé numérique, puis, comme le dit Med, utiliser une fonction de conversion pour un autre champ calculé à partir de cette clé.
Exemple de fonction (à vérifier)
CREATE FUNCTION IntToAlpha(@Value INT) RETURNS VARCHAR(10) AS BEGIN DECLARE @i INT DECLARE @Result VARCHAR(10) SET @Result = ''
WHILE @Value > 0 BEGIN SET @i = @Value - 26 * (@Value / 26) IF (@i = 0) SET @i = 26 SET @Result = CHAR(@i + 64) + @Result SET @Value = @Value / 26 IF @i = 26 SET @Value = @Value -1 END RETURN @Result END
Nicolas
"Pierre" a écrit dans le message de news:
Bonjour
Existe t-il une fonction transact sql (ou une astuce dans le cas échéant) permettant d'incrémenter un Compteur alphabétique ? Exemple de A -> B -> C .....-> AA ->.....AZ .... & ?
Toute suggestion me permettant d'explorer des possibilités me sauvera.
Thank !
Bonjour,
Tu peux ajouter un champ IDENTITY en INTEGER qui te génèrera ta clé
numérique, puis, comme le dit Med, utiliser une fonction de conversion pour
un autre champ calculé à partir de cette clé.
Exemple de fonction (à vérifier)
CREATE FUNCTION IntToAlpha(@Value INT) RETURNS VARCHAR(10) AS
BEGIN
DECLARE @i INT
DECLARE @Result VARCHAR(10)
SET @Result = ''
WHILE @Value > 0
BEGIN
SET @i = @Value - 26 * (@Value / 26)
IF (@i = 0) SET @i = 26
SET @Result = CHAR(@i + 64) + @Result
SET @Value = @Value / 26
IF @i = 26
SET @Value = @Value -1
END
RETURN @Result
END
Nicolas
"Pierre" <Pierre@discussions.microsoft.com> a écrit dans le message de news:
7074A392-5CC9-43C2-8646-1465987138E5@microsoft.com...
Bonjour
Existe t-il une fonction transact sql (ou une astuce dans le cas échéant)
permettant d'incrémenter un Compteur alphabétique ?
Exemple de A -> B -> C .....-> AA ->.....AZ .... & ?
Toute suggestion me permettant d'explorer des possibilités me sauvera.
Tu peux ajouter un champ IDENTITY en INTEGER qui te génèrera ta clé numérique, puis, comme le dit Med, utiliser une fonction de conversion pour un autre champ calculé à partir de cette clé.
Exemple de fonction (à vérifier)
CREATE FUNCTION IntToAlpha(@Value INT) RETURNS VARCHAR(10) AS BEGIN DECLARE @i INT DECLARE @Result VARCHAR(10) SET @Result = ''
WHILE @Value > 0 BEGIN SET @i = @Value - 26 * (@Value / 26) IF (@i = 0) SET @i = 26 SET @Result = CHAR(@i + 64) + @Result SET @Value = @Value / 26 IF @i = 26 SET @Value = @Value -1 END RETURN @Result END
Nicolas
"Pierre" a écrit dans le message de news:
Bonjour
Existe t-il une fonction transact sql (ou une astuce dans le cas échéant) permettant d'incrémenter un Compteur alphabétique ? Exemple de A -> B -> C .....-> AA ->.....AZ .... & ?
Toute suggestion me permettant d'explorer des possibilités me sauvera.
Thank !
Pierre
GENIAL LA FONCTION TOUTE FAITE ELLE MARCHE COMME SUR DES ROULETTES
Il ne me sera pas trop difficile de faire l'inverse, c'est à dire de réaliser la conversion d'un Alpha vers un INTEGER
Merci de votre aide Précieuse.
"Nicolas LETULLIER" a écrit :
Bonjour,
Tu peux ajouter un champ IDENTITY en INTEGER qui te génèrera ta clé numérique, puis, comme le dit Med, utiliser une fonction de conversion pour un autre champ calculé à partir de cette clé.
Exemple de fonction (à vérifier)
CREATE FUNCTION IntToAlpha(@Value INT) RETURNS VARCHAR(10) AS BEGIN DECLARE @i INT DECLARE @Result VARCHAR(10) SET @Result = ''
WHILE @Value > 0 BEGIN SET @i = @Value - 26 * (@Value / 26) IF (@i = 0) SET @i = 26 SET @Result = CHAR(@i + 64) + @Result SET @Value = @Value / 26 IF @i = 26 SET @Value = @Value -1 END RETURN @Result END
Nicolas
"Pierre" a écrit dans le message de news:
> Bonjour > > Existe t-il une fonction transact sql (ou une astuce dans le cas échéant) > permettant d'incrémenter un Compteur alphabétique ? > Exemple de A -> B -> C .....-> AA ->.....AZ .... & ? > > Toute suggestion me permettant d'explorer des possibilités me sauvera. > > Thank !
GENIAL LA FONCTION TOUTE FAITE ELLE MARCHE COMME SUR DES ROULETTES
Il ne me sera pas trop difficile de faire l'inverse, c'est à dire de
réaliser la conversion d'un Alpha vers un INTEGER
Merci de votre aide Précieuse.
"Nicolas LETULLIER" a écrit :
Bonjour,
Tu peux ajouter un champ IDENTITY en INTEGER qui te génèrera ta clé
numérique, puis, comme le dit Med, utiliser une fonction de conversion pour
un autre champ calculé à partir de cette clé.
Exemple de fonction (à vérifier)
CREATE FUNCTION IntToAlpha(@Value INT) RETURNS VARCHAR(10) AS
BEGIN
DECLARE @i INT
DECLARE @Result VARCHAR(10)
SET @Result = ''
WHILE @Value > 0
BEGIN
SET @i = @Value - 26 * (@Value / 26)
IF (@i = 0) SET @i = 26
SET @Result = CHAR(@i + 64) + @Result
SET @Value = @Value / 26
IF @i = 26
SET @Value = @Value -1
END
RETURN @Result
END
Nicolas
"Pierre" <Pierre@discussions.microsoft.com> a écrit dans le message de news:
7074A392-5CC9-43C2-8646-1465987138E5@microsoft.com...
> Bonjour
>
> Existe t-il une fonction transact sql (ou une astuce dans le cas échéant)
> permettant d'incrémenter un Compteur alphabétique ?
> Exemple de A -> B -> C .....-> AA ->.....AZ .... & ?
>
> Toute suggestion me permettant d'explorer des possibilités me sauvera.
>
> Thank !
GENIAL LA FONCTION TOUTE FAITE ELLE MARCHE COMME SUR DES ROULETTES
Il ne me sera pas trop difficile de faire l'inverse, c'est à dire de réaliser la conversion d'un Alpha vers un INTEGER
Merci de votre aide Précieuse.
"Nicolas LETULLIER" a écrit :
Bonjour,
Tu peux ajouter un champ IDENTITY en INTEGER qui te génèrera ta clé numérique, puis, comme le dit Med, utiliser une fonction de conversion pour un autre champ calculé à partir de cette clé.
Exemple de fonction (à vérifier)
CREATE FUNCTION IntToAlpha(@Value INT) RETURNS VARCHAR(10) AS BEGIN DECLARE @i INT DECLARE @Result VARCHAR(10) SET @Result = ''
WHILE @Value > 0 BEGIN SET @i = @Value - 26 * (@Value / 26) IF (@i = 0) SET @i = 26 SET @Result = CHAR(@i + 64) + @Result SET @Value = @Value / 26 IF @i = 26 SET @Value = @Value -1 END RETURN @Result END
Nicolas
"Pierre" a écrit dans le message de news:
> Bonjour > > Existe t-il une fonction transact sql (ou une astuce dans le cas échéant) > permettant d'incrémenter un Compteur alphabétique ? > Exemple de A -> B -> C .....-> AA ->.....AZ .... & ? > > Toute suggestion me permettant d'explorer des possibilités me sauvera. > > Thank !
Yanos El Guerilleros
Salut,
Juste pour dire que tu peux eviter tes deux conditions IF dans ton code avec une boucle du genre :
while @value>0 begin set @i=( (@value+25) % 26 )+1 set @result=CHAR( @i + 64 )+@result set @value = round( (@) / 26,0) end
Ce code est une modif d'un autre plus compliqué mais normalement elle fonctionne telle quelle (au pire il y a un chti réglage dans les valeurs).
A++
Yanos
"Nicolas LETULLIER" a écrit dans le message de news:e9gIy%
Bonjour,
Tu peux ajouter un champ IDENTITY en INTEGER qui te génèrera ta clé numérique, puis, comme le dit Med, utiliser une fonction de conversion
pour
un autre champ calculé à partir de cette clé.
Exemple de fonction (à vérifier)
CREATE FUNCTION IntToAlpha(@Value INT) RETURNS VARCHAR(10) AS BEGIN DECLARE @i INT DECLARE @Result VARCHAR(10) SET @Result = ''
WHILE @Value > 0 BEGIN SET @i = @Value - 26 * (@Value / 26) IF (@i = 0) SET @i = 26 SET @Result = CHAR(@i + 64) + @Result SET @Value = @Value / 26 IF @i = 26 SET @Value = @Value -1 END RETURN @Result END
Nicolas
"Pierre" a écrit dans le message de
news:
> Bonjour > > Existe t-il une fonction transact sql (ou une astuce dans le cas
échéant)
> permettant d'incrémenter un Compteur alphabétique ? > Exemple de A -> B -> C .....-> AA ->.....AZ .... & ? > > Toute suggestion me permettant d'explorer des possibilités me sauvera. > > Thank !
Salut,
Juste pour dire que tu peux eviter tes deux conditions IF dans ton code avec
une boucle du genre :
while @value>0
begin
set @i=( (@value+25) % 26 )+1
set @result=CHAR( @i + 64 )+@result
set @value = round( (@value-@i) / 26,0)
end
Ce code est une modif d'un autre plus compliqué mais normalement elle
fonctionne telle quelle (au pire il y a un chti réglage dans les valeurs).
A++
Yanos
"Nicolas LETULLIER" <nletullier@provibe.ASUPPRIMER.com> a écrit dans le
message de news:e9gIy%23YwEHA.1564@TK2MSFTNGP09.phx.gbl...
Bonjour,
Tu peux ajouter un champ IDENTITY en INTEGER qui te génèrera ta clé
numérique, puis, comme le dit Med, utiliser une fonction de conversion
pour
un autre champ calculé à partir de cette clé.
Exemple de fonction (à vérifier)
CREATE FUNCTION IntToAlpha(@Value INT) RETURNS VARCHAR(10) AS
BEGIN
DECLARE @i INT
DECLARE @Result VARCHAR(10)
SET @Result = ''
WHILE @Value > 0
BEGIN
SET @i = @Value - 26 * (@Value / 26)
IF (@i = 0) SET @i = 26
SET @Result = CHAR(@i + 64) + @Result
SET @Value = @Value / 26
IF @i = 26
SET @Value = @Value -1
END
RETURN @Result
END
Nicolas
"Pierre" <Pierre@discussions.microsoft.com> a écrit dans le message de
news:
7074A392-5CC9-43C2-8646-1465987138E5@microsoft.com...
> Bonjour
>
> Existe t-il une fonction transact sql (ou une astuce dans le cas
échéant)
> permettant d'incrémenter un Compteur alphabétique ?
> Exemple de A -> B -> C .....-> AA ->.....AZ .... & ?
>
> Toute suggestion me permettant d'explorer des possibilités me sauvera.
>
> Thank !
Juste pour dire que tu peux eviter tes deux conditions IF dans ton code avec une boucle du genre :
while @value>0 begin set @i=( (@value+25) % 26 )+1 set @result=CHAR( @i + 64 )+@result set @value = round( (@) / 26,0) end
Ce code est une modif d'un autre plus compliqué mais normalement elle fonctionne telle quelle (au pire il y a un chti réglage dans les valeurs).
A++
Yanos
"Nicolas LETULLIER" a écrit dans le message de news:e9gIy%
Bonjour,
Tu peux ajouter un champ IDENTITY en INTEGER qui te génèrera ta clé numérique, puis, comme le dit Med, utiliser une fonction de conversion
pour
un autre champ calculé à partir de cette clé.
Exemple de fonction (à vérifier)
CREATE FUNCTION IntToAlpha(@Value INT) RETURNS VARCHAR(10) AS BEGIN DECLARE @i INT DECLARE @Result VARCHAR(10) SET @Result = ''
WHILE @Value > 0 BEGIN SET @i = @Value - 26 * (@Value / 26) IF (@i = 0) SET @i = 26 SET @Result = CHAR(@i + 64) + @Result SET @Value = @Value / 26 IF @i = 26 SET @Value = @Value -1 END RETURN @Result END
Nicolas
"Pierre" a écrit dans le message de
news:
> Bonjour > > Existe t-il une fonction transact sql (ou une astuce dans le cas
échéant)
> permettant d'incrémenter un Compteur alphabétique ? > Exemple de A -> B -> C .....-> AA ->.....AZ .... & ? > > Toute suggestion me permettant d'explorer des possibilités me sauvera. > > Thank !