2010-09-17 16 views
7

में बी के साथ शुरू होने वाले कर्मचारी नामों को प्रदर्शित करने के लिए कैसे मैं उन कर्मचारी नामों को प्रदर्शित करना चाहता हूं जिनके नाम ए और बी से शुरू होते हैं, यह सूची की तरह होना चाहिए 'पहले' के रूप में कर्मचारियों को 'ए' के ​​साथ प्रदर्शित करना चाहिए और फिर एक पहले अक्षर के रूप में 'बी' ...एसक्यूएल

इसलिए किसी भी शरीर मुझे बता आदेश इन प्रदर्शित करने के लिए है कि क्या ...

उत्तर

21

ए या बी क्रम में सूचीबद्ध के साथ शुरू कर्मचारी के नाम प्राप्त करने के लिए। ..

select employee_name 
from employees 
where employee_name LIKE 'A%' OR employee_name LIKE 'B%' 
order by employee_name 

यदि आप माइक्रोसॉफ्ट एसक्यूएल सर्वर का उपयोग कर रहे हैं तो आप

.... 
where employee_name LIKE '[A-B]%' 
order by employee_name 

यह मानक SQL नहीं है।

+0

यह काम कर रहा है लेकिन मैं वर्णमाला क्रम में प्रदर्शित करना चाहता हूं जैसे कि अक्षर के साथ नाम पहले होना चाहिए और उसके बाद नाम बी 12 अक्षर –

+2

@lak iphone में हैं: तो आप वास्तव में क्या करने की कोशिश कर रहे हैं? मेरा मतलब है, ये जवाब सभी बहुत समान हैं, और जो मैं आपके प्रश्न से समझ सकता हूं - सही। मुझे लगता है कि आपको सवाल पूछने या प्रश्न को बेहतर तरीके से परिभाषित करने से पहले स्वयं को कुछ शोध करने का प्रयास करना चाहिए ताकि हम आपकी मदद कर सकें। – skajfes

4
select columns 
    from table 
where (
     column like 'a%' 
     or column like 'b%') 
order by column asc 
+0

हम में हिस्सा होगा महिमा :-) – cfEngineers

0

क्या सीएफएनजीनेर्स ने कहा, सिवाय इसके कि ऐसा लगता है कि आप इसे भी सॉर्ट करना चाहते हैं।

select columns 
    from table 
where (
     column like 'a%' 
     or column like 'b%') 
order by column 

शायद एसक्यूएल पर कुछ ट्यूटोरियल देखने के लिए यह एक अच्छा विचार होगा, यह बहुत दिलचस्प है।

0

आप वर्णमाला के क्रम के बारे में पूछ रहे हैं वाक्य रचना है:

SELECT * FROM table ORDER BY column 

सबसे अच्छा उदाहरण मैं अपनी मेज और फ़ील्ड नाम जानने के बिना दे सकते हैं:

SELECT * FROM employees ORDER BY name 
+0

क्या मेरे सुझाव में कुछ गड़बड़ है? इसे डाउनवोट क्यों मिलेगा? – Purge

+1

यह मुझसे नहीं था। मुझे संदेह है कि ऐसा इसलिए है क्योंकि सवाल कहता है कि वे ए और बी से शुरू होने वाले नाम चाहते हैं और आपका जवाब इसे संभाल नहीं लेता है। मैं बड़े पैमाने पर आश्चर्यचकित नहीं होगा हालांकि अगर यह पता लगाना था कि सवाल बुरी तरह से लिखा गया है और आपकी व्याख्या सही है। –

+1

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

0
select * 
from stores 
where name like 'a%' or 
name like 'b%' 
order by name 
+0

यह केवल ए या बी से शुरू होने वाले नामों के लिए काम करेगा, आपको वर्णित रूप से ए-जेड क्रमबद्ध करने के लिए पोस्ट किए गए उत्तर का उपयोग करने की आवश्यकता है – Purge

0
select name_last, name_first 
from employees 
where name_last like 'A%' or name_last like 'B%' 
order by name_last, name_first asc 
0
select employee_name 
from employees 
where employee_name LIKE 'A%' OR employee_name LIKE 'B%' 
order by employee_name 
0

यहां से जो प्रश्न मैं समझता हूं वह "ए" से शुरू हो रहा है "और फिर" ख " पूर्व:

  • अभय
  • अभिषेक
  • अभिनव

तो दो की स्थिति और दोनों सही होना चाहिए आप नहीं कर सकते उपयोग का मतलब होना चाहिए" या "ऑपरेटर द्वारा आदेश अनिवार्य नहीं है लेकिन यदि आप इसका उपयोग करते हैं तो यह अच्छा है।

Select e_name from emp 
where e_name like 'a%' AND e_name like '_b%' 
Ordered by e_name 
2

नियमित अभिव्यक्तियों की एक श्रृंखला को खोजने की आवश्यकता होने पर नियमित अभिव्यक्ति अच्छी तरह से काम करती है। निम्नलिखित ए, बी, सी या डी से शुरू होने वाले सभी कर्मचारी नामों को पाता है और प्रारंभिक लोअरकेस अक्षर वाले डेटाबेस में नाम होने पर "UPPER" कॉल जोड़ता है। मेरी क्वेरी ओरेकल में काम करती है (मैंने अन्य डीबी का परीक्षण नहीं किया)।निम्नलिखित उदाहरण के लिए वापस आएगा:
एडम्स
एडम्स
डीन
डीन

इस क्वेरी भी "निम्न" कॉल के माध्यम से द्वारा आदेश में मामले पर ध्यान नहीं देता:

SELECT employee_name 
FROM employees 
WHERE REGEXP_LIKE(UPPER(TRIM(employee_name)), '^[A-D]') 
ORDER BY lower(employee_name)