comment déclarer une variable dans Netezza?
J'ai un Netezza requête où je référence un couple de dates en une série d'états. Au lieu de remplacer l'ensemble de ces dates à chaque fois que je voudrais declaire une variable au début et à utiliser tout au long de la requête. Dans le SAS, je ferais comme ceci:
%LET end_p = '31DEC2014'd;
proc sql;
create table want as
select distinct id,
sum(case when (INCUR_DT) >= (&end_p-30)
and ip_op_cd = 'IP'
then net_allow_at else 0 end) as ip_d_30,
sum(case when (INCUR_DT) >= (&end_p-90)
and ip_op_cd = 'IP'
then net_allow_at else 0 end) as ip_d_90,
sum(case when (INCUR_DT) >= (&end_p-180)
and ip_op_cd = 'IP'
then net_allow_at else 0 end) as ip_d_180,
...
Êtes-vous opposé à l'aide d'un script pour le coup d'envoi de vos requêtes? Vous pouvez faire ce que je fais: placez vos variables tout au long de votre fichier SQL, et un script de remplacer vos variables avec l'entrée souhaitée avant d'exécution sur le Netezza serveur.
OriginalL'auteur ADJ | 2015-01-05
Vous devez vous connecter pour publier un commentaire.
Malheureusement, il n'y a pas de procédure extensions SQL dans Netezza qui vous permettent d'employer des variables comme ceci dans le cadre du langage SQL. Purement SQL solutions consisterait kludges telles que l'adhésion à un CTE retourner qu'une seule valeur. Cependant, la NZSQL CLI permet l'utilisation de variables de session, comme le fait Aginity Workbench.
Un exemple d'utilisation de NZSQL. Remarque la fuite de l'intérieur des guillemets simples à utiliser la variable comme un littéral.
Aginity s'auto-invite de valeurs quand il voir $var_name, mais il n'y a pas la fonctionnalité du code en dur que la définition de la variable, au moins autant que je sache.
OriginalL'auteur ScottMcG