සමහර වෙලාවට C++ උචිත වෙන අවස්ථා තියෙනව වගෙ SQL හොද වෙන වෙලාවලුත් තියෙනව. SQL කියන්නෙ 1974 දි සොයා ගත්ත පරන language එකක්. එය වරින් වර අලුත් දේවල් එකතු කර ගනිමින් ලොකු ගමනක් ආවත් නැවත redesign වීමක් සිදු වුනේ නැහැ. ඒ නිසා සමහර වෙලාවට අනවශ්ය ලෙස පැටලිලි සහගත වෙන වෙලාවල් තිබෙනවා.
හිතන්න ඔබට මේ වගෙ query එකක් ලියන්න වෙනවා කියලා.මේකෙ කිසිම ගැටලුවක් නැහැ.
SELECT UPPER(Name)
FROM Customer
WHERE Name LIKE 'A%'
ORDER BY Name
ඔබට එකවරම ඕන වෙනවා 21-30 දක්වා පේලි වල විතරක් ප්රතිඵල ලබා ගන්න.එතකොට ලියන්න වෙන්නෙ මෙහෙම.
SELECT UPPER(Name) FROM
(
SELECT *, RN = row_number()
OVER (ORDER BY Name)
FROM Customer
WHERE Name LIKE 'A%'
) A
WHERE RN BETWEEN 21 AND 30
ORDER BY Name
SQL Server 2005 වලට වඩා පරන db වලට support කරන්න නම්, code එකට තවත් දෙවල් add වෙන්න ඕනෙ.
SELECT TOP 10 UPPER (c1.Name)
FROM Customer c1
WHERE
c1.Name LIKE 'A%'
AND c1.ID NOT IN
(
SELECT TOP 20 c2.ID
FROM Customer c2
WHERE c2.Name LIKE 'A%'
ORDER BY c2.Name
)
ORDER BY c1.Name
නමුත් ඔබ මේ දේම LINQ වලින් ලියුවොත් ඕන වෙන්නෙ මෙච්චරයි.
var query =
from c in db.Customers
where c.Name.StartsWith ("A")
orderby c.Name
select c.Name.ToUpper();
var thirdPage = query.Skip(20).Take(10);
කොයිතරම් සරලද, පැහැදිලිද?? මම මේ post එකෙන් කතා කලේ එක ප්රයෝජනවත් ලක්ෂණයක් ගැන විතරයි.
Google කරලා LINQ ගැන විස්තර හොයල බලන්න...
සීත ගගුල කරගෙන යන්නෙ ඔයාල දෙන දිරි ගැන්වීම් වලින්. BLOG එකට කැමති නම් follower කෙනෙක් වෙන්න අමතක කරන්නත් එපා.
No comments:
Post a Comment