Accueil > Forum > > > > curseur T SQL
curseur T SQL
samedi 2 mai 2009 à 23:04:58 |
curseur T SQL

bluefred
|
Salut,
je suis débutant en SQL, je vais compter le nombre de caractère unique sur chaque ligne.
dans une table j'ai une colonne qui est comme:
id colonne
1 AB
2 AABBAC
3 ABCADDFA
.
.
merci bcp
|
|
lundi 4 mai 2009 à 12:48:33 |
Re : curseur T SQL

aieeeuuuuu
|
Bonjour
il y a plusieurs facon de faire ca, mais je pense que la solution la plus simple, en passant par une procedure stockée, est de :
1/ créer une table temporaire avec une seule colonne 2/ faire une boucle : inserer chaque lettre une par une dans la table temporaire 3/ faire un count(distinct * ) sur la table temporaire = resultat voulu
|
|
lundi 11 mai 2009 à 21:23:13 |
Re : curseur T SQL

bluefred
|
Bonjour, merci bcp pour ta réponse.
Désolé, mais je vois pas comment ça va aboutir au résultat, ce que je veux par exemple (+ précisément, cette fois) est d'éliminer quelque bloque de caractère, les 5 chiffres après les deux 1er caractères alphanumérique, et après, extraire les éléments uniques par ligne.
RegStr ---------------------------------------------------- AA00123-AA00124-AF00525 ---------------------------------------------------- AA00823-A900624-TF00525-TF00124-AA00123 ---------------------------------------------------- AA00123-AA00724-AF00525-AF12345-AA00978 ---------------------------------------------------- AB00123-AB00124-AF00525-AB00987-AF56432 ---------------------------------------------------- ... J'ai fais une recherche sur le net et j'ai trouver que Oracle géré très bien cette question a l'aide de Regular Expression (REGEXP_REPLACE) mais je connais pas comment le faire avec MS SQL. Avec MS SQL (Version 7.0), j'ai créé un curseur ça marche mais ça se bloque quelque part, ma table contient a peu prés 1 million d'observation et peut évoluer d'avantage.
C'est quoi le plus rapide et sure, les curseurs ou la procédure stock ée ----------------------------------------------------------- --Create & fill out the table ----------------------------------------------------------- create table #Test (RegStr varchar(250)) go insert into #Test (RegStr) values ('AA00123-AA00124-AF00525') insert into #Test (RegStr) values ('AA00823-A900624-TF00525-TF00124-AA00123') insert into #Test (RegStr) values ('AA00123-AA00724-AF00525-AF12345-AA00978') insert into #Test (RegStr) values ('AB00123-AB00124-AF00525-AB00987-AF56432')
alter table #Test add AllRegStr varchar(250) go alter table #Test add UniqueStr varchar(250) go
----------------------------------------------------------- --Get RegStr ----------------------------------------------------------- Declare @Num int, @String varchar(250), @RegStr varchar(250), @j int Declare Get_RegStr cursor for select RegStr from #Test open Get_RegStr fetch next from Get_RegStr into @String set @RegStr = @String WHILE @@FETCH_STATUS = 0 begin set @Num = (len(replace(@RegStr,'-',''))/7) set @j = 0 WHILE @j < @Num begin set @RegStr = STUFF(@RegStr, 3+2*@j, 6, '') set @j=@j+1 end update #Test set AllRegStr = @RegStr where #Test.RegStr = @string FETCH NEXT FROM Get_RegStr into @String set @RegStr = @String end close Get_RegStr ----------------------------------------------------------- --Get UniqueStr ----------------------------------------------------------- Declare @Str varchar(250), @i int, @Count int, @result varchar(250), @RegStr varchar(250) Declare Get_Unique cursor for select AllRegStr from #Test open Get_Unique fetch next from Get_Unique into @Str set @RegStr = @Str WHILE @@FETCH_STATUS = 0 begin set @i = 1 set @count = (len(@RegStr)) while (@i < @Count) begin if (@result IS NULL) begin set @result = '' end set @result = @result + SUBSTRING(@RegStr,1,2) set @RegStr = REPLACE(@RegStr,SUBSTRING(@RegStr,1,2),'') set @i = @i + 2 end update #Test set UniqueStr = @result where #Test.AllRegStr = @Str FETCH NEXT FROM Get_Unique into @Str set @RegStr = @Str set @result = '' end close Get_Unique deallocate Get_Unique
|
|
Cette discussion est classée dans : sql, colonne, curseur
Répondre à ce message
Sujets en rapport avec ce message
Sql serveur et Curseur [ par pepe013 ]
Bonjour a tous Voila je suis un peu entrain de galéré avec ce curseur sous sql serveur qui me permet de renvoyé tout les attributs d'une table ( nom d
Colonne Table SQL 2000 [ par anspauldou ]
SalutJe voudrai savoir s'il est possible en MS SQL2000 d'avoir une colonne en lecture seul dans ma table afin d'empêcher quiconque d'effectuer une mod
créer table avec plusieur clés etrangérs en sql server 2005 [ par amal2008 ]
Bonjour, je veux faire une requete de create table en sql server 2005 , avec tous les contrainres et types des champs,le probléme c'est qu il m'accept
probleme de virgule [ par colonelblondass ]
Bonjour à vous Forum, J'ai un énorme problème en SQL. J'ai une table avec plus de 21 millions d'enregistrements et en l'important, la colonne avec l
Aide SQL [ par rem594 ]
Bonjour et merci d'avance pour votre aide, Voici mon problème. Je lie 2 tables par l'intermédiaire d'une requête Sql. Mon objectif est de ramener cer
[SQL Server Express 2005] Problème de DeadLock [ par pitipilot ]
Bonjour à tous j'ai un sacré problème : j'ai plusieurs PC liés en ODBC avec une base de donnée. Sauf que certaines données ne sont pas envoyées. Quand
[BAR]Connexion distante à SQL SERVER 2008 (sur XP Home) [ par HammR ]
Bonjour et tout d'abord merci d'avoir posé vos yeux sur cette première ligne, espérons que vous irez plus loin ! Je galère depuis quelques jours main
CSV SQL [ par aymen8219 ]
bonjour, mon probleme c'est lorsque je fait l'import d'un fichier csv vers mysql j'ai un probleme dans les chiffes négative et les chiffre avec virgu
Petite erreur de syntaxe SQL difficilement décelable [ par hgus ]
Bonsoir, Je viens vers vous car je n'arrive pas à trouver ce petit bug bien gênant : Sur un forum phpBB 3.0.9, j'ai installé un Mod, une shoutbox
Instruction (plsql ou sql) pour changer de connexion [ par colonelblondass ]
Bonjour, Est-il possible de changer de connexion sur sql developer avec une commande (sql ou pl sql) ? J'ai 2 connexions possibles. Je dois faire u
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|