2012-06-19 2 views
1

J'ai un ensemble dynamique de conditions qui sont utilisées dans une clause where.Paramètre d'utilisation Sybase comme clause where

J'essaie de les ajouter dans une procédure stockée dans la clause WHERE en tant que paramètre pour la clause complète, mais sans obtenir les résultats.

Est-ce possible?

Parameter @sql_statement = 'date in ('2011-01-01','2012-01-01','2012-05-24') AND doc = '1'' 

#where statement 
WHERE emp='x' AND @sql_statement 
+1

Les paramètres ne peuvent faire partie du SQL, ils sont des éléments de données et seront toujours des éléments de données. Vous devez utiliser le paramètre pour créer une nouvelle commande SQL et exécuter une nouvelle commande * (SQL dynamique) *. – MatBailie

+0

Quelle version de Sybase utilisez-vous? –

Répondre

1

Comme Dems mentionné, il semble que vous voulez utiliser dynamic SQL.

Vous pouvez essayer:

declare @where_clause varchar(100) 
declare @sql_statement varchar(500) 
select @where_clause = 'date in (''2011-01-01'',''2012-01-01'',''2012-05-24'') AND doc = ''1''' 
select @sql_statement = 'select * from my_table where ' + @where_clause 
exec (@sql_statement)