05-15 08:39
Recent Posts
Recent Comments
관리 메뉴

miinsun

[T-SQL] T-SQL _SELECT 문 예제(sql 연습 문제) 본문

DataBase/T-SQL

[T-SQL] T-SQL _SELECT 문 예제(sql 연습 문제)

miinsun 2021. 11. 25. 10:16

 

1. SalesLT.Custom 테이블에서 모든 열을 선택하십시오.

SELECT * FROM SalesLT.Customer

 

2. 고객 테이블(Customer table)에서 제목, 이름, 중간 이름, 성, 접미사 열을 선택하십시오.

SELECT Title, FirstName, MiddleName, LastName, Suffix FROM SalesLT.Customer;

 

3. 각 고객에게는 지정된 영업 담당자가 있습니다. 영업 담당자의 정보와 고객 정보를 선택하십시오.

CustmomerName은 (Title + LastName) Mr Smith 방식으로 표시하십시오.

SELECT SalesPerson, Title + ' ' + LastName AS CustomerName, Phone FROM SalesLT.Customer;

 

4. CustomerID 열을 VARCHAR로 캐스트하고 CompanyName 열을 CustomerCompany로 표현하여 선택하십시오.

SELECT CAST(CustomerID AS varchar) + ': ' + CompanyName AS CustomerCompany FROM SalesLT.Customer;

 

 

5. SalesLT.SalesOrderHeader 테이블에는 판매 주문 레코드가 포함됩니다. 다음을 보여주는 보고서에 대한 데이터를 검색하라는 요청을 받았습니다.

- <OrderNumber> (<Revision>) 형식의 판매 주문 번호 및 개정 번호 (예 : SO71774 (2)).

- OrderDate는 ANSI 표준 형식 yyyy.mm.dd (예 : 2015.01.31)로 변환되었습니다.

SELECT SalesOrderNumber + ' (' + STR(RevisionNumber, 1) + ')' AS OrderRevision, CONVERT(NVARCHAR(30), OrderDate, 102) AS OrderDate FROM SalesLT.SalesOrderHeader;
 

 

6. 고객 이름 목록을 반환하는 쿼리를 작성합니다.

- MiddleName을 모르는 경우 <FirstName> <LastName> (예 : Keith Harris)

- MiddleName이 데이터베이스에 저장된 경우 <FirstName> <MiddleName> <LastName> (예 : Jane M. Gates)

SELECT FirstName + ' ' + ISNULL(MiddleName + ' ', '') + LastName AS CustomerName FROM SalesLT.Customer;
 

 

7. 고객은 AdventureWorks에 전자 메일 주소, 전화번호 또는 둘 다를 제공할 수 있습니다. 이메일 주소를 사용할 수 있는 경우 기본 연락 방법으로 사용해야 합니다. 그렇지 않은 경우 전화번호를 사용해야 합니다. 한 열의 고객 ID 목록과 알려진 경우 전자 메일 주소가 포함된 PrimaryContact라는 두 번째 열과 전화번호를 반환하는 쿼리를 작성합니다.

-CustomerID를 선택하고 EmailAddress 및 Phone 열에 COALESCE를 사용하십시오.

SELECT CustomerID, COALESCE(EmailAddress, Phone) AS Contact FROM SalesLT.Customer;
 

 

8. 알려진 ShipDate가 있는 주문의 경우 "Shipped"텍스트와 Shipdate가 없는 주문의 경우 "Awaiting Shipment"텍스트가 포함된 ShippingStatus라는 열과 함께 판매 SalesOrderID 및 OrderDate을 리턴하는 쿼리를 작성하시오.

SELECT SalesOrderID, OrderDate, CASE WHEN ShipDate IS NULL THEN 'Awaiting Shipment' ELSE 'Shipped' END AS ShippingStatus FROM SalesLT.SalesOrderHeader;
 

 

9. AdventureWorks의 물류 관리자가 운송 비용을 줄이기 위해 회사 고객에 대한 세부 정보가 포함된 일부 보고서를 생성하도록 요청했습니다. 우선, 모든 고객의 위치 목록을 작성해야 합니다.

- 고유한 도시와 주를 선택하십시오

SELECT DISTINCT City, StateProvince FROM SalesLT.Address;
 

 

10. 운송 비용이 증가하고 있어 가장 무거운 제품을 식별해야 합니다. 가장 무거운 제품을 선택하는 쿼리를 작성하시오.

- Name 열에서 상위 10 %를 선택하십시오

- 무게(Weight) 순으로 내림차순으로 정렬

SELECT TOP 10 PERCENT Name FROM SalesLT.Product ORDER BY Weight DESC;

 

11. 가장 무거운 10 개의 제품은 전문 운송 업체가 운송합니다. 가장 무거운 10 개의 제품을 포함하지 않는 무거운 순 100 개의 제품을 나열하도록 쿼리를 조정하십시오.

- 10 행을 OFFSET 하고 다음 100을 얻습니다.

SELECT Name FROM SalesLT.Product ORDER BY Weight DESC OFFSET 10 ROWS FETCH NEXT 100 ROWS ONLY;
 

 

12. 제품 모델 ID가 1 인 제품의 이름, 색상 및 크기를 찾는 쿼리를 작성하십시오.

- Name, Color, Size 열을 선택하십시오

- ProductModelID가 1인지 확인하십시오.

SELECT Name, Color, Size FROM SalesLT.Product WHERE ProductModelID = 1;

 

 

 

13. ProductManager는 특정 색상과 크기의 제품에 대한 자세한 정보를 원합니다. 색상이 'Black', 'Red'또는 'White'이고 크기가 'S'또는 'M'인 제품의 제품 번호와 이름을 검색하십시오.

SELECT ProductNumber, Name FROM SalesLT.Product WHERE Color IN ('Black', 'Red', 'White') AND Size IN ('S', 'M');
 

 

14. ProductManager는 특정 제품 번호 접두사가 있는 제품에 대한 정보도 원합니다. 'BK-'로 시작하는 제품 번호가 있는 제품의 제품 번호, 이름 및 정가를 검색하십시오.

SELECT ProductNumber, Name, ListPrice FROM SalesLT.Product WHERE ProductNumber LIKE 'BK%';

 

 

15. ProductManager는 특정 접두사가 있는 제품 번호와 관련된 마지막 요청의 약간의 변형에 관심이 있습니다. ProductNumber가 'BK-'로 시작하고 뒤에 'R'을 제외한 문자가 뒤이어 오고 '-'로 끝나며 두 개의 숫자가 있는 제품의 가격을 검색하도록 이전 쿼리를 수정하십시오.

SELECT ProductNumber, Name, ListPrice FROM SalesLT.Product WHERE ProductNumber LIKE 'BK-[^R]%-[0-9][0-9]' ;
 

 

Comments