Sunday, July 20, 2008

ORDER BY

လိုခ်င္တဲ့ data ေတြကို ေရွ့မွာျပခဲ့တဲ့ keywords မ်ား အသံုးျပဳျပီး ရယူႏိုင္ျပီးတဲ့ေနာက္မွာ ကၽြန္ေတာ္တို့အေနနဲ့ ေနာက္ထပ္ ျဖစ္ေစခ်င္တဲ့ ဆႏၵက ရလာတဲ့ data ေတြကို အစီအစဥ္အတိုင္း ျဖစ္ေစခ်င္တာပါ။ အဲဒီအတြက္ သံုးရမယ့္ keyword က ORDER BY ပါ..ဒီ keyword ကို command line ရဲ့ ေနာက္ဆံုးမွာပဲ ေရးပါတယ္။

အသံုးျပဳရမယ့္ ပံုစံက

SELECT “column_name”
FROM “table_name”
[WHERE “condition”]
ORDER BY “column_name” [ASC,DESC]

ပထမ [] ရဲ့ ဆိုလိုခ်က္က WHERE statement က optional ပါ။ မပါလည္း ရပါတယ္..လိုအပ္သလို ထည့္သံုးႏိုင္ပါတယ္..WHERE statement ပါခဲ့ရင္ ORDER BY keyword ရဲ့ ေရွ့မွာပဲ ရွိရမွာပါ.. ဒုတိယ [] ရဲ့ ဆိုလိုခ်က္က column_name ကို ငယ္စဥ္ၾကီးလိုက္ ASC (Ascend) စီစဥ္မွာလား? ၾကီးစဥ္ငယ္လိုက္ DESC (Descend) စီစဥ္မွာလား? လိုအပ္တာ လိုက္ႏိုင္ပါတယ္..တကယ္လို႔ ORDER BY keyword ရဲ့ေနာက္မွာ ASC နဲ႕ DESC တခုကိုမွ ေရြးမထားဘူးဆိုရင္ ပံုမွန္အားျဖင့္ ASC ငယ္စဥ္ၾကီးလိုက္ ေအာ္တို စီစဥ္ေပးပါတယ္.. ဥပမာေတြကို ၾကည့္ရင္ ရွင္းသြားပါလိမ့္မယ္..

Store_information

Store_nameSalesDate
Yangon$1500Jan-07-2007
Mandalay$850Jan-05-2007
Naypyitaw$350Jan-10-2007
Yangon$400Jan-10-2007
Bago$550Jan-08-2007

SELECT Store_name,Sales
FROM Store_information
ORDER BY Sales DESC

ရလဒ္အေနနဲ့ကေတာ့ ရလာတဲ့ data ေတြကို အေရာင္းတန္ဖိုးအတိုင္း ၾကီးစဥ္ငယ္လိုက္ စီစဥ္ထားတာကို ေတြ႔ရပါလိမ့္မယ္..

Store_information

Store_nameSales
Yangon$1500
Mandalay$850
Bago$550
Yangon$400
Naypyitaw$350

ေနာက္ဥပမာအေနနဲ့

SELECT *
FROM Store_information
ORDER BY Store_name ASC

ရလဒ္က

Store_information

Store_nameSalesDate
Bago$550Jan-08-2007
Mandalay$850Jan-05-2007
Naypyitaw$350Jan-10-2007
Yangon$1500Jan-07-2007
Yangon$400Jan-10-2007

Store_information table ထဲက data အားလံုးကို ရယူျပီးေတာ့ ရလာတဲ့ data ေတြကိုမွ Store_name အရ ငယ္စဥ္ၾကီးလုိက္ စီစဥ္ထားတဲ့ အတြက္ ABC အကၡရာ အစဥ္လိုက္ ျပေနပါလိမ့္မယ္..

ေနာက္တခုအေနနဲ့ WHERE statement နဲ့ တဲြသံုးပါမယ္..ေရးတာကို ၾကည့္ရေအာင္..

SELECT *
FROM Store_information
WHERE Store_name=”Yangon”
ORDER BY 2

ေအာက္က table ကို ရရိွပါမယ္။

Store_information

Store_nameSalesDate
Yangon$400Jan-10-2007
Yangon$1500Jan-07-2007

ဒီ table မွာဆိုရင္ စတိုးဆိုင္ရဲ့ အမည္ေတြထဲက Yangon ဆိုတဲ့ data ကိုပဲ လိုခ်င္တာ ျဖစ္တဲ့အတြက္ WHERE statement ကို သံုးပါတယ္..ရလာတဲ့ data ေတြကိုမွ အေရာင္းတန္ဖုိးေတြကို ငယ္စဥ္ ၾကီးလိုက္ စီစဥ္လိုက္တာပါ… ဒီမွာဆိုရင္ Column_name ရဲ့ အစား Column position ကို သံုးႏိုင္တယ္ဆိုတာ ျပထားပါတယ္..
SELECT * ဆိုတဲ့ အတြက္ အားလံုးကို ေရြးယူမွာ ျဖစ္လုိ႔ Column အေရအတြက္ သံုးခုရွိပါတယ္. အဲဒီထဲကမွ ORDER BY 2 လို႔ေျပာထားတဲ့ အတြက္ ႏွစ္ခုေျမာက္ Column ျဖစ္တဲ့ Sales အရ စီစဥ္တာ ျဖစ္ျပီး ASC နဲ႔ DESC ကို သတ္မွတ္မထားတဲ့ အတြက္ ASC ငယ္စဥ္ၾကီးလုိက္ ေအာ္တို စီစဥ္ေပးတာကို ေတြ႔ရပါလိမ့္မယ္..လက္ေတြ႔လုပ္ၾကည့္ရင္းနဲ့ နားလည္ႏိုင္မယ္လို့ ယံုၾကည္ပါတယ္..

No comments: