Die Aktion `table.update` aus dem 'table'-Aktionssatz wird verwendet, um Daten einer CAS-Tabelle im Speicher zu ändern. Sie ist besonders nützlich für transaktionale oder Massenaktualisierungen. Aktualisierungen können auf die gesamte Tabelle oder auf eine durch eine WHERE-Klausel spezifizierte Untermenge von Zeilen angewendet werden. Die neuen Spaltenwerte können literale Konstanten, Ausdrücke basierend auf anderen Spalten der Tabelle oder eine Kombination aus beidem sein. Es ist wichtig zu beachten, dass literale Zeichenwerte (wie 'Sport Sedan' oder '31,000') automatisch konvertiert werden, wenn die Zielspalte einen kompatiblen numerischen Typ hat.
Datenanalyse
Type : CREATION_INTERNE
Die Beispiele verwenden generierte Daten (Datalines) oder SASHELP, die dann zur Bearbeitung nach CAS hochgeladen werden.
1 Codeblock
PROC CAS / DATA step Data
Erklärung : Dieses Beispiel initialisiert eine `produits`-Tabelle im CAS-Speicher. Anschließend wird die Aktion `table.update` verwendet, um den 'Prix' aller Produkte um 5% zu erhöhen. Die Aktion `table.fetch` zeigt die Aktualisierungsergebnisse an.
Erklärung : Dieses Beispiel aktualisiert Produkte, deren 'Statut' 'Rupture' ist. Für diese Produkte wird der 'Prix' um 10% reduziert und der 'Statut' auf 'EnStock' geändert. Dies zeigt eine bedingte Aktualisierung über mehrere Spalten hinweg.
Erklärung : Dieses Beispiel verwendet Makrovariablen, um die Aktualisierung dynamischer zu gestalten. Produkte einer spezifischen Kategorie (hier 'Electronique') erfahren eine Preiserhöhung von 15%, und ihr 'NomProduit' wird mit 'MAJ-' präfigiert. Dies veranschaulicht die Verwendung komplexer Ausdrücke und Makrovariablen.
TABLE.fetch / TABLE='produits' / to=100; /* Fetch toutes les lignes pour vérification */
15
QUIT;
4 Codeblock
PROC CAS Data
Erklärung : Dieses Szenario zeigt, wie die Aktion `table.update` für Validierungen verwendet werden kann. Der erste Block versucht, ein nicht existierendes Produkt zu aktualisieren, was die Rückgabebehandlung demonstriert. Der zweite Block aktualisiert den Status von Produkten, deren Lagerbestand kleiner oder gleich 10 ist, und ändert den numerischen Wert 'Stock' in die Zeichenkette 'Faible'. Dies veranschaulicht die Verwendung der Funktion `input` für die Typumwandlung in der `where`-Klausel.
Kopiert!
data mycas.stock_produits;
length NomProduit $30 Stock Initial $10;
input NomProduit Stock $;
datalines;
Ordinateur Portable 10
Smartphone 50
Souris 200
Clavier 0
Ecran 30
Tablette 5
;
run;
proc cas;
session casauto;
table.promote / caslib='mycas' name='stock_produits';
/* Tentative de mise à jour pour un produit non existant */
r = table.update {
table='produits',
where="NomProduit = 'ProduitInexistant'",
set={
{var='Prix', value='Prix + 100'}
}
};
print r;
/* Mise à jour conditionnelle avec vérification de stock */
r = table.update {
table='stock_produits',
where="input(Stock, ?? best.) <= 10",
set={
{var='Stock', value="'Faible'"}
}
};
print r;
table.fetch / table='stock_produits';
quit;
/* Tentative de mise à jour pour un produit non existant */
19
r = TABLE.update {
20
TABLE='produits',
21
where="NomProduit = 'ProduitInexistant'",
22
SET={
23
{var='Prix', value='Prix + 100'}
24
}
25
};
26
PRINT r;
27
28
/* Mise à jour conditionnelle avec vérification de stock */
29
r = TABLE.update {
30
TABLE='stock_produits',
31
where="input(Stock, ?? best.) <= 10",
32
SET={
33
{var='Stock', value="'Faible'"}
34
}
35
};
36
PRINT r;
37
TABLE.fetch / TABLE='stock_produits';
38
QUIT;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.