Page 1 of 1

SQL Wild Card

Posted: Fri Aug 28, 2009 9:26 am
by Minigo
Je cherche une façon d'utiliser un wildcard dans un champ numérique avec SQL serveur...

Exemple qui fonctionne avec un champ string qui fonctionne pas avec une clef numérique:
SELECT * FROM tbl_note WHERE Note like '%'

Mais avec un champ numérique (idNote INT)

SELECT * FROM tbl_note WHERE idNote like %

Est-ce que quelque chose existe avec un wildcard?
Si ça existe pas, je devrai changer mon approche car ce sont des requètes pour des dropdown list..

Re: SQL Wild Card

Posted: Fri Aug 28, 2009 9:30 am
by Elladan
Y'aurait pas moyen de faire ton like mais en faisant un convert en string ?

Re: SQL Wild Card

Posted: Fri Aug 28, 2009 9:31 am
by Minigo
Elladan wrote:Y'aurait pas moyen de faire ton like mais en faisant un convert en string ?
Bonne piste...

Je vais l'essayer...

Re: SQL Wild Card

Posted: Fri Aug 28, 2009 9:43 am
by kag
C'est la seule façon de faire selon moi, mais selon la grosseur de ta table, ça risque d'être horriblement lent.

Re: SQL Wild Card

Posted: Fri Aug 28, 2009 9:52 am
by Minigo
L'autre façon faire pourrait fonctionner si ce qui suit existe:

On peut utiliser un CASE WHEN dans un SELECT pour un test.

SELECT CASE WHEN Prov='PQ' THEN 'Province Québec' WHEN Prov='PO' THEN 'Province Ontario' END as Province FROM ......

Mais un CASE dans la clause WHERE pouvait exister, je pense que j'aurais réglé mon problème genre:

SELECT * from tbl_Province WHERE CASE WHEN idProv=0 THEN strProv='Quebec' .....

Re: SQL Wild Card

Posted: Fri Aug 28, 2009 10:15 am
by Minigo
Ha ben bâtard!!!!
J'ai trouvé une autre méthode!!!!

Code: Select all

IF @nivGFA >0 
BEGIN
     SELECT DISTINCT [Route_SA_Segment] FROM [tbl_GFA] WHERE GFA_Type= @nivGFA  ORDER BY [Route_SA_Segment]
END
IF @nivGFA =0 
BEGIN
     SELECT DISTINCT [Route_SA_Segment] FROM [tbl_GFA] ORDER BY [Route_SA_Segment]
END

Et tous ça... dans une DATASOURCE!!!
Je savais pas qu'on pouvais mettre un peu de code dans une datasource!!!

Avec bien sur un paramètre en référence avec une autre DDL:

<SelectParameters>
<asp:ControlParameter ControlID="DDLStatutGFA" Name="nivGFA" PropertyName="SelectedValue" />
</SelectParameters>

Re: SQL Wild Card

Posted: Fri Aug 28, 2009 10:46 am
by fkc
Ouais tu peux envoyer un paramètre a un datasource qui lui est branché a une procédure stockées sur SQL. Je m'en sert tout le temps, ce ou ces paramètres peut etre fixe dans le datasource (genre ne pas afficher dans un combo box qui provient d'une table les valeur qui sont désactivé), soit une valeur qui vient de la form ou bien au run-time par ton code.

Perso, j'ai pas encore compris le gros intéret de Linq dans VS 2008, je suis du style que toutes mes requetes vers le serveur de data passe par des procédures stockées (et linq est pas trop trippeux de ca a première vue), c'est tellement puissant ce que tu peux faire dans le t-sql pour amméliorer la performance de la requete sans oublier que j'adore donnée accès par store proc et non au table directement qui eux sont barrer, meme en simple lecture ;-)