Skip to content

Instantly share code, notes, and snippets.

@SlavikArt
Created January 22, 2024 15:11
Show Gist options
  • Save SlavikArt/2def6689e44cd4bea9e6a8d9a1cbee7b to your computer and use it in GitHub Desktop.
Save SlavikArt/2def6689e44cd4bea9e6a8d9a1cbee7b to your computer and use it in GitHub Desktop.

Variables querries

Variables

-- 1. показать среднее арифметическое трёх
-- вещественных чисел, записанных в переменные
PRINT 'Задание 1:'
DECLARE @num1 float = 15.3
DECLARE @num2 float = 8.6
DECLARE @num3 float = 12.2
PRINT 'Среднее арифметическое чисел: ' + CHAR(10)
+ cast(@num1 AS nvarchar) + ', '
+ cast(@num2 AS nvarchar) + ', '
+ cast(@num3 AS nvarchar) + ' --> '
+ cast(((@num1 + @num2 + @num3) / 3.0) AS nvarchar)
-- 2. скрипт проверяет, какое сейчас время суток на сервере,
-- и выдаёт приветствие "добрый вечер!" или "добрый день!"
-- (проверки ифами-элс ифами-элсом)
PRINT CHAR(10) + 'Задание 2:'
DECLARE @hour_now int = DATEPART(HOUR, GETDATE())
IF @hour_now BETWEEN 5 AND 11
PRINT 'Доброе утро!'
ELSE IF @hour_now BETWEEN 12 AND 16
PRINT 'Добрый день!'
ELSE IF @hour_now BETWEEN 17 AND 23
PRINT 'Хорошего вечера!'
ELSE
PRINT 'Спокойной ночи!'
-- 3. проверить, является ли шестизначное число
-- номером счастливого трамвайного билета
-- (сумма первых трёх цифр совпадает с суммой последних трёх цифр).
-- например, число 123006 - счастливое, 234567 - нет
-- 1 способ
PRINT CHAR(10) + 'Задание 3, способ 1:'
DECLARE @number int = 123006
DECLARE @firstThreeDigits int
DECLARE @lastThreeDigits int
IF @number BETWEEN 100000 AND 999999
BEGIN
SET @firstThreeDigits = (@number / 1000) % 1000
SET @lastThreeDigits = @number % 1000
IF ((@firstThreeDigits / 100) + (@firstThreeDigits / 10 % 10) + (@firstThreeDigits % 10)) =
((@lastThreeDigits / 100) + (@lastThreeDigits / 10 % 10) + (@lastThreeDigits % 10))
PRINT 'Число ' + cast(@number AS nvarchar) + ' - счастливое!'
ELSE
PRINT 'Число ' + cast(@number AS nvarchar) + ' - не счастливое('
END
ELSE
PRINT 'Число ' + cast(@number AS nvarchar) + ' не является шестизначным'
-- 2 способ
PRINT CHAR(10) + 'Задание 3, способ 2:'
DECLARE @number2 nvarchar(6) = '001010'
DECLARE @firstThreeDigitsSum int
DECLARE @lastThreeDigitsSum int
IF LEN(@number2) = 6
BEGIN
SET @firstThreeDigitsSum =
CAST(SUBSTRING(@number2, 1, 1) AS int)
+ CAST(SUBSTRING(@number2, 2, 1) AS int)
+ CAST(SUBSTRING(@number2, 3, 1) AS int)
SET @lastThreeDigitsSum =
CAST(SUBSTRING(@number2, 4, 1) AS int)
+ CAST(SUBSTRING(@number2, 5, 1) AS int)
+ CAST(SUBSTRING(@number2, 6, 1) AS int)
IF @firstThreeDigitsSum = @lastThreeDigitsSum
PRINT 'Число ' + @number2 + ' - счастливое!'
ELSE
PRINT 'Число ' + @number2 + ' - не счастливое('
END
ELSE
PRINT 'Число ' + @number2 + ' не является шестизначным'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment