As featured in: Data Management Solutions Using SAS Hash Table Operations: A Business Intelligence Case Study , and built from this github repository.
Chapter 4 Selective Update Snippet.sas
1 /* "Chapter 4 Selective Update Snippet.sas" from the SAS Press book
2  Data Management Solutions Using SAS Hash Table Operations:
3  A Business Intelligence Case Study
4 */
5 
6 data _null_ ;
7  dcl hash H (multidata:"Y", ordered:"N") ;
8  H.definekey ("K") ;
9  H.definedata ("D") ;
10  H.definedone () ;
11  do K = 1, 2, 2, 3, 3, 3 ;
12  q + 1 ;
13  D = char ("ABCDEF", q) ;
14  H.ADD() ;
15  end ;
16  h.output(dataset: "AsLoaded") ;
17  put "Enumerate to update D=(D,F) with D=(X,Z):" ;
18  do RC_enum = H.FIND(KEY:3) by 0 while (RC_enum = 0) ;
19  D = translate (D, "XZ", "DF") ;
20  RC_updt = H.REPLACEDUP() ;
21  RC_enum = H.FIND_NEXT() ;
22  end ;
23  put +3 RC_updt= ;
24  put "Enumerate again to check result:" ;
25  do RC_enum = H.FIND(KEY:3) by 0 while (RC_enum = 0) ;
26  put +3 RC_enum= D= ;
27  RC_enum = H.FIND_NEXT() ;
28  end ;
29  stop ;
30 run ;