Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle सिंटैक्स - क्या हमें पुराने और नए के बीच चयन करना चाहिए?

यहां भी ऐसी ही बात है, लेकिन उतने देव नहीं, और न ही पुराने कोड। मैं नए सामान का उपयोग कर रहा हूं, पुराने लोग पुरानी शैली का उपयोग कर रहे हैं, लेकिन हम दोनों जानते हैं कि दूसरा क्या करने की कोशिश कर रहा है।

व्यक्तिगत रूप से, मैं कहूंगा कि व्यक्तिगत डेवलपर के उपयोग के लिए जो भी शैली आसान हो, उसके साथ जाएं। जब तक आप बेंचमार्क नहीं चलाते हैं और यह पता नहीं लगाते हैं कि एक दूसरे की तुलना में तेज़ है (जैसा कि, महत्वपूर्ण होने के लिए पर्याप्त अंतर है), और नए और पुराने दोनों ही उनके द्वारा देखे जाने वाले प्रश्नों को पढ़ और समझ सकते हैं, उन्हें बदलने का कोई कारण नहीं है। पी>

हालाँकि, मेरा व्यक्तिगत वोट पुराने सामान को वैसे ही छोड़ना होगा, और नए सिंटैक्स का उपयोग करके नए प्रश्न लिखना होगा, जैसे कि JOIN का उपयोग करना। s और USING और ON आदि पढ़ने में बहुत आसान हैं, और जानते हैं कि क्या हो रहा है, फिर AND x.col = y.col AND z.col = a.col का एक गुच्छा होना WHERE . में अनुभाग।

वह, और नए लोग शायद अधिक समय तक रहने वाले हैं, इसलिए उन्हें अंततः अपना रास्ता मिल जाएगा...

एक अतिरिक्त उदाहरण

आप में से बाकी लोगों के बारे में नहीं जानते, लेकिन मुझे शामिल होने की पुरानी शैली का उपयोग करके कुछ इस तरह का पता लगाने (या इसे लिखने) की कोशिश करने से नफरत होगी:

SELECT DISTINCT product_zone_map_id, zh.name_english, zh.name_french, zone_id, ad.attribute_value_english AS bullprep_region_type,
        product_zone_type_id, ad.attribute_value_english, language_english, product_code, office_code,
        (
            SELECT attribute_value_english
            FROM presentation p JOIN presentation_details ad USING(presentation_id)
            WHERE dimension_id = 4
              AND object_id = product_zone_map_id
              AND attribute_type = 'BULLPREP PARENT ID'
              AND p.usage_start_date <= TO_TIMESTAMP('2010-05-12', 'yyyy-mm-dd hh24:mi:ss')
              AND (p.usage_end_date >= TO_TIMESTAMP('2010-05-12', 'yyyy-mm-dd hh24:mi:ss') OR p.usage_end_date IS NULL)
        ) AS bullprep_parent_id,
        (
            SELECT attribute_value_english
            FROM presentation p JOIN presentation_details ad USING(presentation_id)
            WHERE dimension_id = 4
              AND object_id = product_zone_map_id
              AND attribute_type = 'BULLPREP GROUP ID'
              AND p.usage_start_date <= TO_TIMESTAMP('2010-05-12', 'yyyy-mm-dd hh24:mi:ss')
              AND (p.usage_end_date >= TO_TIMESTAMP('2010-05-12', 'yyyy-mm-dd hh24:mi:ss') OR p.usage_end_date IS NULL)
        ) AS bullprep_group_id, product_zone_seq
FROM zone z JOIN zone_history zh ON(z.zone_id = zh.zone_id)
     JOIN product_zone_map pzm ON(z.zone_id = pzm.zone_id)
     JOIN product USING(product_id)
     JOIN product_history ph USING(product_id)
     JOIN language_reference USING(language_id)
     LEFT OUTER JOIN product_zone_attribute_details pzad USING(product_zone_map_id)
     LEFT OUTER JOIN attribute_details ad USING(attribute_id)
     JOIN zone_geocode_map USING(zone_id)
     JOIN geocode USING(geocode_id)
WHERE zh.usage_start_date <= TO_TIMESTAMP('2010-05-12', 'yyyy-mm-dd hh24:mi:ss')
  AND (zh.usage_end_date >= TO_TIMESTAMP('2010-05-12', 'yyyy-mm-dd hh24:mi:ss') OR zh.usage_end_date IS NULL)
  AND pzm.usage_start_date <= TO_TIMESTAMP('2010-05-12', 'yyyy-mm-dd hh24:mi:ss')
  AND (pzm.usage_end_date >= TO_TIMESTAMP('2010-05-12', 'yyyy-mm-dd hh24:mi:ss') OR pzm.usage_end_date IS NULL)
  AND (attribute_type = 'BULLPREP REGION TYPE' OR attribute_type IS NULL)
  AND product_id = 2075
ORDER BY product_zone_seq



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL से कम या उसके बराबर

  2. .NET से Oracle DB से कैसे जुड़ें?

  3. यूक्लिडियन दूरी

  4. विजुअल स्टूडियो-एएसपी.नेट में संदर्भ को बदलने में समस्या

  5. चयन कथन गणना में कॉलम उपनाम का प्रयोग करें Oracle SQL