TRY_CONVERT
CAST va CONVERT funksiyalaridan foydalanilganda, SQL Server ma`lumotni ma`lum bir tipga o`tkazib bo'lmaydigan bo'lsa, xatoli yuzaga keladi. Misol uchun:
SELECT CONVERT(int, 'sql')
Xatoliklarni keltirib chiqarmaslik uchun TRY_CONVERT funksiyasidan foydalanish mumkin. Uning ishlatilishi CONVERT funksiyasiga o'xshaydi, faqat ifoda kerakli tipga o’girilmasa, funksiya NULL qiymatini qaytaradi:
SELECT TRY_CONVERT(int, 'sql') -- NULL
SELECT TRY_CONVERT(int, '22') -- 22
Qo’shimcha funksiyalar
STR (float [, uzunlik [, decimal]]): sonni satrga aylantiradi. Ikkinchi parametr satr uzunligini, uchinchisi esa sonning kasr qismida qancha belgi qoldirilishi kerakligini bildiradi.
CHAR (int): Berilgan ASCII kodga mos simvolni qaytaradi. Ko'pincha klaviaturadan kiritib bo'lmaydigan belgi kerak bo'lgan holatlar uchun foydalaniladi.
ASCII (char): ASCII simvol kodini qaytaradi.
NCHAR (int): Berilgan UNICODE kodga mos simvolni qaytaradi.
UNICODE (nchar): belgini UNICODE simvol kodini qaytaradi.
SELECT STR(123.4567, 6,2) -- 123.46
SELECT CHAR(219) -- Ы
SELECT ASCII('Ы') -- 219
SELECT NCHAR(1067) -- Ы
SELECT UNICODE('Ы') -- 1067
10-mavzu. Guruhlash.
Reja:
Agregat(guruhlash) funksiyalari
GROUP BY va HAVING operatorlari
Agregat funksiyalar
Agregat funksiyalari qatoridagi qiymatlar ustida hisob-kitoblarni amalga oshiradi. T-SQL quyidagi agregat funksiyalarni taqdim etadi:
AVG: O'rtacha qiymatni topadi
SUM: qiymatlar yig'indisini topadi
MIN: eng kichik qiymatni topadi
MAX: eng katta qiymatni topadi
COUNT: So'rov natijasidagi qatorlar sonini qaytaradi
Argument sifatida barcha agregat funksiyalar qiymatlarni aniqlash mezonini anglatuvchi ifodani oladi. Ko'pincha, bu ifoda ustun qiymati bo’lib, uning qiymatlari bo'yicha kerakli amalni bajarish mumkin.
AVG va SUM funksiyalaridagi ifodalar raqamli qiymatni ko`rsatishi kerak. MIN, MAX va COUNT funksiyalaridagi ifoda raqamli, satrli qiymatni yoki sanani ko`rsatishi mumkin.
COUNT (*) dan tashqari barcha agregat funksiyalar NULL qiymatlarini inobatga olmaydi.
AVG
Avg funksiyasi jadval ustunidagi bacrha qiymatlarning o'rtacha qiymatini qaytaradi.
Ma`lumotlar bazasida quyidagicha tavsiflangan Products jadvali bor deylik:
CREATE TABLE Products
(
Id INT IDENTITY PRIMARY KEY,
ProductName NVARCHAR(30) NOT NULL,
Manufacturer NVARCHAR(20) NOT NULL,
ProductCount INT DEFAULT 0,
Price MONEY NOT NULL
);
INSERT INTO Products
VALUES
('iPhone 6', 'Apple', 3, 36000),
('iPhone 6S', 'Apple', 2, 41000),
('iPhone 7', 'Apple', 5, 52000),
('Galaxy S8', 'Samsung', 2, 46000),
('Galaxy S8 Plus', 'Samsung', 1, 56000),
('Mi6', 'Xiaomi', 5, 28000),
('OnePlus 5', 'OnePlus', 6, 38000)
Ma`lumotlar bazasidan tovarlarning o'rtacha narxini topamiz:
SELECT AVG(Price) AS Average_Price FROM Products
O'rtacha qiymatni topish uchun Price ustuni funksiyaga ifoda sifatida uzatiladi.
Filtrlashni ham qo`llash mumkin. Masalan, ma`lum bir ishlab chiqaruvchining tovarlari uchun o'rtacha narxini topaylik:
SELECT AVG(Price) FROM Products
WHERE Manufacturer='Apple'
Bundan tashqari, murakkab ifodalar uchun o'rtacha qiymatni hisoblash mumkin. Masalan, tovarlarning miqdorini hisobga olgan holda ularning o'rtacha qiymatini topaylik:
SELECT AVG(Price * ProductCount) FROM Products
Count
Count funksiyasi tanlash so’rovi natijasidagi qatorlar sonini qaytaradi. Ushbu funksiyaning ikkita shakli mavjud. COUNT (*) birinchi shakli tanlash so’rovi natijasidagi qatorlar sonini qaytaradi:
SELECT COUNT(*) FROM Products
Funksiyaning ikkinchi shakli ma`lum bir ustun uchun qatorlar sonini qataradi, NULL qiymatlari bo'lgan qatorlar e'tiborga olinmaydi:
SELECT COUNT(Manufacturer) FROM Products
Do'stlaringiz bilan baham: |