db2 - SQL UPDATE A COLUMN = 'XYZ' WHERE SELECT (MULTIPLE ROWS TO UPDATE COMPARING DIFFERENT TABLE) -
नीचे एसक्यूएल देता है -811 या नौकरी रद्द हो जाती है
अद्यतन दर एक SED.D_PROC_RATE_END = '1234' कहां मौजूद है (A.C_PROCEDURE का चयन करें, A.C_SPECIALTY, A.C_PROV_TYPE, A.C_PROCEDURE_MOD प्रोक बी वाम बाहरी से A.N_PROC_RATE शामिल हों दरें एक पर A.C_SPECIALTY = '181' और A.C_PROV_TYPE = बी C_PROV_TYPE और A.C_PROCEDURE = B.C_PROCEDURE और (A.C_PROCEDURE_MOD = B.C_PROCEDURE_MOD या A.C_PROCEDURE_MOD IS NULL) और (A.D_PROC_RATE_END शून्य है या A.D_PROC_RATE_END = '12 / 31/9999 ') और A.N_PROC_RATE = क्या इस एसक्यूएल को प्रत्येक रिकॉर्ड को कम से कम क्वैरीटिया में अपडेट नहीं किया जाएगा?
हम जवाब नहीं दे सकते कि यह हर पंक्ति अपडेट करेगा या नहीं। हमें डेटा नहीं पता है अगर EXISTS () विचलित हर बार एक 'सच्चा' मान देता है, तो यह हर पंक्ति को अपडेट करेगा; अन्यथा यह नहीं होगा।
इस क्वेरी को पहले चलाएं:
SELECT A.C_PROCEDURE, ए.सी.विपेतिटी, एसी_PROV_TYPE, A.C_PROCEDURE_MOD, A.N_PROC_RATE दरों से एक कहां मौजूद है (चयन A.C_PROCEDURE, A.C_SPECIALTY, A.C_PROV_TYPE, A.C_PROCEDURE_MOD प्रोक बी वाम बाहरी से A.N_PROC_RATE शामिल हों दरें एक पर A.C_SPECIALTY = '181' और A.C_PROV_TYPE = B.C_PROV_TYPE और एक .C_PROCEDURE = B.C_PROCEDURE और (A.C_PROCEDURE_MOD = B.C_PROCEDURE_MOD या A.C_PROCEDURE_MOD IS NULL) और (A.D_PROC_RATE_END शून्य है या A.D_PROC_RATE_END = '12 / 31/9999 ') और A.N_PROC_RATE = B.N_PROC_RATE ORDER BY A.C_PROCEDURE) हर पंक्ति जो लौटा दी गई है वह है जो अपडेट हो जाएगी। (मैं लगभग हमेशा किसी भी गैर-तुच्छ अद्यतन को करने से पहले एक परीक्षण का चयन करता हूं।)
आप WHERE NOT < / strong> EXISTS यह देखने के लिए कि अपडेट नहीं किया जाएगा।
Comments
Post a Comment