Attachments
-
You do not have permission to view the full content of this post. Log in or register now.
I cannot execute this kind of output using t sqlHello! How can I assist you with the T-SQL conditional statement? Could you please provide me with more details about the issue you are facing with the CASE statement?
I apologize for any confusion. If you're having trouble executing a specific output using T-SQL and the CASE statement, please provide me with the specific code you're trying to execute and describe the desired output or behavior. I'll do my best to help you resolve the issue.I cannot execute this kind of output using t sqlView attachment 2754866
UPDATE Records SET Level = 'Senior' WHERE Id= Count; SELECT @FirstName=FirstName, @Lastname= LastName, @Age= Age, @Gender= Gender, Level = LOWER(Level)FROM Records WHERE Id = Count; END ELSE IF age < 14 AND age > 25 BEGIN UPDATE Records SET Level = 'Unknown' WHERE Id= Count; SELECT @FirstName=FirstName, @Lastname= LastName, @Age= Age, @Gender= Gender, Level = LOWER(Level)FROM Records WHERE Id = Count; END ELSE BEGIN SET @Result =('Id: '+CONVERT(VARCHAR,Count) +' | Name: '+@FirstName+' '+@LastName+' | '+'Age: '+CONVERT(VARCHAR,age)+' | '+'Gender: '+@Gender+' | '+'Level: '+ UPPER(Level) ) SELECT @FirstName=FirstName, @Lastname= LastName, @Age= Age, @Gender= Gender, Level = UPPER(Level)FROM Records WHERE Id = Count; SELECT CASE WHEN age >=14 AND age <=16 THEN @Result WHEN age >=17 AND age <=19 THEN @Result WHEN age >=20 AND age <=22 THEN @Result WHEN age >=23 AND age <=25 THEN @Result ELSE 'Unknown' END END PRINT 'Id: '+CONVERT(VARCHAR,Count) +' | Name: '+@FirstName+' '+@LastName+' | '+'Age: '+CONVERT(VARCHAR, Count)+' | '+'Gender: '+@Gender+' | '+'Level: '+ Level; SET @Count= @Count+ 1; END ENDI apologize for any confusion. If you're having trouble executing a specific output using T-SQL and the CASE statement, please provide me with the specific code you're trying to execute and describe the desired output or behavior. I'll do my best to help you resolve the issue.
The code you provided appears to be a mixture of T-SQL statements and control flow logic. It seems like you are attempting to update records in a table based on certain conditions and output the results.UPDATE Records SET Level = 'Senior' WHERE Id= Count; SELECT @FirstName=FirstName, @Lastname= LastName, @Age= Age, @Gender= Gender, Level = LOWER(Level)FROM Records WHERE Id = Count; END ELSE IF age < 14 AND age > 25 BEGIN UPDATE Records SET Level = 'Unknown' WHERE Id= Count; SELECT @FirstName=FirstName, @Lastname= LastName, @Age= Age, @Gender= Gender, Level = LOWER(Level)FROM Records WHERE Id = Count; END ELSE BEGIN SET @Result =('Id: '+CONVERT(VARCHAR,Count) +' | Name: '+@FirstName+' '+@LastName+' | '+'Age: '+CONVERT(VARCHAR,age)+' | '+'Gender: '+@Gender+' | '+'Level: '+ UPPER(Level) ) SELECT @FirstName=FirstName, @Lastname= LastName, @Age= Age, @Gender= Gender, Level = UPPER(Level)FROM Records WHERE Id = Count; SELECT CASE WHEN age >=14 AND age <=16 THEN @Result WHEN age >=17 AND age <=19 THEN @Result WHEN age >=20 AND age <=22 THEN @Result WHEN age >=23 AND age <=25 THEN @Result ELSE 'Unknown' END END PRINT 'Id: '+CONVERT(VARCHAR,Count) +' | Name: '+@FirstName+' '+@LastName+' | '+'Age: '+CONVERT(VARCHAR, Count)+' | '+'Gender: '+@Gender+' | '+'Level: '+ Level; SET @Count= @Count+ 1; END END
Laboratory Exercise T-SQL Conditional StatementsThe code you provided appears to be a mixture of T-SQL statements and control flow logic. It seems like you are attempting to update records in a table based on certain conditions and output the results.
However, I noticed a few issues with the code you provided:
1. The usage of "Count" as a variable name is not recommended as it is a reserved keyword in T-SQL. It would be better to use a different variable name.
2. It seems like you are using a loop or cursor to iterate over the records, but I don't see the loop control statements in the code you provided. Make sure you have the necessary loop or cursor logic in place.
3. The usage of the SELECT statement after the UPDATE statement might not give you the desired results. In T-SQL, the SELECT statement immediately after an UPDATE statement returns the number of rows affected by the UPDATE statement, not the updated data.
4. The CASE statement within the ELSE block doesn't seem to have any conditions. You might want to add appropriate conditions to the CASE statement.
To better assist you, could you please provide more details about the specific problem you are facing with the CASE statement? What output are you expecting and what output are you getting? Additionally, please provide more information about the structure of the "Records" table.
Based on the given instructions, here's an example of how you can implement the desired functionality using T-SQL:Laboratory Exercise T-SQL Conditional Statements
Objectives:
At the end of the exercise, the students should be able to:
Apply various conditional statements
Software Requirement:
: Microsoft SQL Server Management Studio 18.0 or higher Microsoft SQL Server Express 2017
IT2003
Procedures:
1. Create a database named LabDB and create a table named Records and put the following data. See the screenshot below.
Id
1
LastName
Santos
FirstName
Age
Gender
Mark Anthony
17
Male
Level
Freshman
2
Nonat
Jayson
15
Male
Sophomore
3
Valencia
Nicole
20
Female
Senior
4
Campos
Jane
19
Female
Junior
5
Morales
Micah
21
Female
Senior
6
Atienza
Eldibert
17
Male
Sophomore
7 8
Dela Cruz
Philip
16
Male
Freshman
Ramos
Loisa
21
Female
Senior
9
Galang
Orlean
18
Male
Junior
10
Detera
Chin
16
Female
Freshman
2. Fetch each data from table Records using a while loop and evaluate them using IF-ELSE AND CASE statements. If the returning age is 14 to 16, change the level to Freshman. If 17 to 19, change it to Sophomore. If 20 to 22, change it to Junior. Lastly, if 23 to 25, change it to Senior. If the returning age is not in the given range, change their level to 'Unknown'.
3. Querying data through IF-ELSE statement should display their level to LOWERCASE. Else, using the CASE statement should display their level to UPPERCASE.
4. Display the updated level of each data using a PRINT statement. See the sample output on the next
page.
-- Step 1: Create the database and table
CREATE DATABASE LabDB;
GO
USE LabDB;
GO
CREATE TABLE Records (
Id INT,
LastName VARCHAR(50),
FirstName VARCHAR(50),
Age INT,
Gender VARCHAR(10),
Level VARCHAR(20)
);
-- Step 2: Insert the sample data
INSERT INTO Records (Id, LastName, FirstName, Age, Gender, Level)
VALUES
(1, 'Santos', 'Mark Anthony', 17, 'Male', 'Freshman'),
(2, 'Nonat', 'Jayson', 15, 'Male', 'Sophomore'),
(3, 'Valencia', 'Nicole', 20, 'Female', 'Senior'),
(4, 'Campos', 'Jane', 19, 'Female', 'Junior'),
(5, 'Morales', 'Micah', 21, 'Female', 'Senior'),
(6, 'Atienza', 'Eldibert', 17, 'Male', 'Sophomore'),
(7, 'Dela Cruz', 'Philip', 16, 'Male', 'Freshman'),
(8, 'Ramos', 'Loisa', 21, 'Female', 'Senior'),
(9, 'Galang', 'Orlean', 18, 'Male', 'Junior'),
(10, 'Detera', 'Chin', 16, 'Female', 'Freshman');
GO
-- Step 3: Use a while loop to fetch and update data
DECLARE @Id INT, @FirstName VARCHAR(50), @LastName VARCHAR(50), @Age INT, @Gender VARCHAR(10), @Level VARCHAR(20);
DECLARE @Count INT = 1;
WHILE @Count <= (SELECT COUNT(*) FROM Records)
BEGIN
SELECT @Id = Id, @FirstName = FirstName, @LastName = LastName, @Age = Age, @Gender = Gender, @Level = Level
FROM Records
WHERE Id = @Count;
IF @Age BETWEEN 14 AND 16
UPDATE Records SET Level = 'Freshman' WHERE Id = @Id;
ELSE IF @Age BETWEEN 17 AND 19
UPDATE Records SET Level = 'Sophomore' WHERE Id = @Id;
ELSE IF @Age BETWEEN 20 AND 22
UPDATE Records SET Level = 'Junior' WHERE Id = @Id;
ELSE IF @Age BETWEEN 23 AND 25
UPDATE Records SET Level = 'Senior' WHERE Id = @Id;
ELSE
UPDATE Records SET Level = 'Unknown' WHERE Id = @Id;
IF @Age BETWEEN 14 AND 16 OR @Age BETWEEN 17 AND 19 OR @Age BETWEEN 20 AND 22 OR @Age BETWEEN 23 AND 25
SELECT @FirstName AS FirstName, @LastName AS LastName, @Age AS Age, @Gender AS Gender, LOWER(Level) AS Level;
ELSE
SELECT @FirstName AS FirstName, @LastName AS LastName, @Age AS Age, @Gender AS Gender, UPPER(Level) AS Level;
SET @Count = @Count + 1;
END;
GO