Je pose la question au nom de quelqu'un qui travaille pour mon client qui me l'a demandé. Je suis en fait plus familier avec MySQL que SQL Server, mais malheureusement, SQL Server est ce que le client a utilisé pendant des années.Fractionner une chaîne en plusieurs valeurs dans SQL Server 2000
La question est la suivante: existe-t-il un moyen dans SQL Server de diviser une chaîne en plusieurs valeurs (par exemple, tableau?) Pouvant être utilisées dans une instruction WHERE.
Voici un exemple PHP de ce dont je parle.
<?php
$string = "10,11,12,13";
$explode = explode(",", $string);
?>
$ explode serait égal à array (10,11,12,13). Ce que je dois faire quelque chose comme ceci:
SELECT {long field list] FROM {tables} WHERE hour IN SPLIT(",", "10,11,12,13")
Avec SPLIT étant ma fonction pseudo-code qui effectue la division
La raison pour laquelle je ne fais pas cela dans, disons, PHP , parce que la requête est construite en rapportant un logiciel où nous ne pouvons pas exécuter de logique (comme mon code PHP) avant de l'envoyer à la base de données, et les valeurs multiples sont retournées par le logiciel comme une seule chaîne séparée par des tuyaux |). Malheureusement, je n'ai pas accès au logiciel de reporting (je pense qu'il a dit qu'il s'appelait Logi ou LogiReports ou quelque chose) ou à la requête que mon associé était en train de rédiger, mais tout ce qui est vraiment important pour cette question est la clause WHERE .
Des idées?
Ceci est étiqueté comme serveur SQL 2000; si c'est en fait en 2005, il y a une nouvelle fonction table définie par l'utilisateur qui peut faire ce genre de chose TRÈS joliment – Nikki9696
Haha, vous n'avez aucune idée de ce que j'ai dit "si seulement ces gars utilisaient 2005" - j'ai dit à propos de beaucoup de choses, y compris l'absence de la fonction HashBytes(). Malheureusement, c'est le serveur 2000. – WhiskeyTangoFoxtrot