Considérons le problème ci-dessous: J'ai deux chaînes pour Split:fusionner deux STRING_SPLIT
STR1 = 'b;a;c;d;e'
STR2 = '3;1;4;2;5'
Je veux diviser et fusionner ces deux chaînes en fonction de leur indice, de sorte que le résultat est:
b -> 3
a -> 1
c -> 4
d -> 2
e -> 5
J'ai essayé avec STRING_SPLIT
, mais order by
les trie tous.
SELECT A.VALUE, B.VALUE FROM (
SELECT VALUE, ROW_NUMBER() OVER(ORDER BY VALUE) AS RW
FROM STRING_SPLIT('b;a;c;d;e', ';')
) A
INNER JOIN (
SELECT VALUE, ROW_NUMBER() OVER(ORDER BY VALUE) AS RW
FROM STRING_SPLIT('3;1;4;2;5', ';')
) B
ON A.RW = B.RW
Cela produit le résultat suivant:
a 1
b 2
c 3
d 4
e 5
pour référence à SQL 2016 'STRING_SPLIT': https://docs.microsoft.com/en-us/sql/t -sql/functions/string-split-transact-sql – Tanner
vous pouvez utiliser 2 requêtes avec 'row_number' et les joindre, ne pas avoir 2016 donc ne peut pas tester, même si vous mai besoin de commander les résultats de sorte que ne peut pas fonctionner – Tanner
vous voulez physiquement cette flèche? – scsimon