0
votes

Comment sélectionner la colonne recherchée de sélectionner la requête en fonction de la condition

J'ai sélectionné la requête qui retourne ID, nom, description, prix

im essayant d'obtenir un identifiant, prix seul basé sur la condition Il devrait afficher le nom, la description xxx

merci >


3 commentaires

Utilisez SQL dynamique ou écrivez votre requête N fois avec Big IFS, répétant la plupart du code à partir de l'instruction dans chacune d'elles.


On ne sait pas ce que tu essayes de faire ici. Pour @ show = 1 @show = 1 Sélectionnez ID, nom, si @show = 1 commence Nom ??. Veuillez éditer votre question et fournir plus de détails.


Je passe le paramètre show comme 0 ou 1, si 0 ne devez sélectionner que ID, prix si je passe 1, il sélectionne toutes les 4 colonnes, merci


4 Réponses :


0
votes
@show =1

if @show = 1 
begin 
select id, name, description, price from tbl
end
else begin
select id, price from tbl
end

1 commentaires

Merci, ma requête SELET a 50 lignes, existe-t-il un moyen de faire avec si ou une instruction CASE dans Sélectionner une colonne comme si nous devons ajouter ou supprimer une colonne en fonction de la condition, tout suppléant puis-je obtenir?



0
votes

Vous pouvez rejoindre les colonnes que vous souhaitez et exécuter la requête.

DECLARE @filter AS Integer
DECLARE @columns AS nvarchar(50)
DECLARE @sql AS nvarchar(50)

Set @filter = 1

if @filter = 0 
begin 
Set @columns = 'id, name, description, price'
end
else begin
Set @columns = 'id, name'
end

set @sql = 'select ' + @columns +  ' from tbl'

EXECUTE sp_executesql @sql
print @sql


0 commentaires


0
votes

Votre réponse toute votre réponse m'a beaucoup aidé, merci. Enfin je suis allé cette méthode fonctionne sur la cordon concat Les champs sont ID, nom, description, prix

déclarer @id int;
Déclarez @sqlCommand Nvarparar (max);
Déclarez @Visible int;
SET @SQLCOMMAND = 'SELECT ID,' + Case quand @Visible = 1 Alors 'Nom, Description' Sinon '' Fin + ', prix de TBL où id = @ID '

Exécuter SP_EXECUTSQL @SQLCOMMAND, N '@ ID INT', @ ID = @ ID

si je passe visible = 1 le résultat sera Nom de l'identifiant Desc Price

visible = 0 PRIX ID

merci


0 commentaires