Comment convertir une liste de nombres dans (temp) de la table à l'aide de SQL (SQL Server)
Voici un exemple;
J'ai la liste des numéros (1,5,8,36) et je veux que ces valeurs (temp) les lignes de la table. L'une des façon de le faire est de suivre les
select 1 as n into ##temp
union
select 5 as n
union
select 8 as n
union
select 36 as n
Le problème est le numéro de la liste est dynamique . il peut avoir n'importe quel pas de valeurs. J'ai donc besoin d'une bonne manière systématique pour convertir ces valeurs en temp lignes de la table.
Si vous avez plus de valeurs, d'ajouter de plus en plus les syndicats?
Je suis à la recherche de quelque chose de mieux que le nombre N de l'UNION dans le Sql
UDF de diviser une chaîne de caractères et retourne une table - stackoverflow.com/a/2657/1016183
Quelle est la source de ces chiffres? Votre demande peut passer dans une TVP à la place?
Je suis à la recherche de quelque chose de mieux que le nombre N de l'UNION dans le Sql
UDF de diviser une chaîne de caractères et retourne une table - stackoverflow.com/a/2657/1016183
Quelle est la source de ces chiffres? Votre demande peut passer dans une TVP à la place?
The problem is number list is dynamic . it can have any no of values.
OriginalL'auteur Bala | 2012-05-16
Vous devez vous connecter pour publier un commentaire.
Une solution que j'utilise beaucoup...
De fournir à votre liste de numéros comme un
VARCHAR(MAX)
virgule delimeted chaîne de caractères, puis utilisez l'un des nombreuxdbo.fn_split()
fonctions que les gens ont écrit sur la ligne.L'un des de nombreux exemples en ligne... SQL-Défini par l'Utilisateur-Fonction-de-Parse-un Délimité par-Str
Ces fonctions prennent une chaîne de caractères en paramètre, et retourne une table.
Alors vous pouvez faire des choses comme...
Une alternative est de regarder dans la Table de Paramètres. Ceux-ci vous permettent de passer un tableau à une procédure stockée en tant que paramètre. Comment dépend du framework que vous utilisez. Êtes-vous en .NET, Java, Ruby, etc, et comment êtes-vous communiquer avec la base de données?
Une fois que nous savons plus de détails sur l'application du code, nous pouvons vous montrer à la fois le code du client, et de la procédure stockée SQL template, pour l'utilisation de la Table de Paramètres.
SÉLECTIONNEZ * à PARTIR de <itérer property="id" open="(" close=")" liaison="UNION"> SÉLECTIONNEZ $id[]$ id_val </itération> x LEFT JOIN table1 t1 SUR id_val = t1.id_val OÙ t1.id_val EST NULL
Je suis sûr que cette fonction fonctionne . Mais j'hésite à utiliser ~100 lignes en fonction de création de la table temporaire. Est-il tout-autre moyen plus simple ?
Il y a beaucoup de scinder les fonctions de partout sur l'internet, et de beaucoup, sur un Débordement de Pile. Juste de faire une recherche pour l'un que vous aimez, et/ou jusqu'à ce que vous les comprenez et pouvez les modifier pour vos besoins.
OriginalL'auteur MatBailie
Vous Pouvez Utiliser La Requête Ci-Dessous Pour Sélectionner 100 Valeur Aléatoire De 1 À 9
OriginalL'auteur mehdi lotfi
- Je l'utiliser pour un ensemble générique de lignes numérotées.
OriginalL'auteur HoggZilla
OriginalL'auteur Rahul Yadav