J'utilise une sous-requête pour obtenir les résultats nécessaires (plusieurs enregistrements retournés), et je veux mettre ces résultats dans un seul enregistrement retourné. Lorsque j'exécute la sous-requête elle-même, cela fonctionne, mais une fois que je l'utilise comme sous-requête, cela ne fonctionne plus en raison d'une erreur de syntaxe.T-SQL, Select @variable dans une sous-requête provoque une erreur de syntaxe
Le code suivant provoque une erreur de syntaxe
(syntaxe incorrecte près '='.)
declare @test varchar(1000)
set @test = ''
SELECT description, (SELECT @test = @test + FirstName
FROM EMP_tblEmployee
)select @test
FROM EMP_tblCrew
Donc, essentiellement, la sous requête
(SELECT @test = @test + FirstName
FROM EMP_tblEmployee
)select @test
retours " charliejohnjacob "
La principale requête
SELECT description FROM EMP_tblCrew
retours "concierge"
Je veux dire
janitor | charliejohnjacob
2 champs, 1 enregistrement.
Que voulez-vous faire en anglais? –
Essayez-vous de transformer des lignes en colonnes, ou ajoutez un espace à firstName – StingyJack
Ressemble à une tentative de concaténation de tous les prénoms dans un jeu de résultats ... mais pourquoi? Cela, si cela fonctionne, va créer une sorte de pyramide de noms. L'intention ici est très discutable. –