본문 바로가기

트레이닝

Where 쿼리

 

using System;
using System.Collections.Generic;
using System.Linq;

namespace LinqGeneric
{
    #region Where
    class Join
    {
        class Department
        {
            public int Id { get; set; }
            public string Name { get; set; }
        }

        class Employee
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public int DeptId { get; set; }
        }
        static void Main(string[] args)
        {
            List<Department> departments = new List<Department>();
            departments.Add(new Department { Id = 1, Name = "Account" });
            departments.Add(new Department { Id = 2, Name = "Sales" });
            departments.Add(new Department { Id = 3, Name = "Marketing" });
            departments.Add(new Department { Id = 4, Name = "Order" });
            departments.Add(new Department { Id = 5, Name = "Depart" });

            List<Employee> employees = new List<Employee>();
            employees.Add(new Employee { DeptId = 1, Id = 1, Name = "William" });
            employees.Add(new Employee { DeptId = 2, Id = 2, Name = "Miley" });
            employees.Add(new Employee { DeptId = 1, Id = 3, Name = "Benjamin" });
            employees.Add(new Employee { DeptId = 5, Id = 4, Name = "Hong" });
            employees.Add(new Employee { DeptId = 4, Id = 5, Name = "Kim" });

            var where = (from e in employees
                        where e.DeptId.Equals(1)
                        select e);

            Console.WriteLine("\nDeptId 가 1인것만 표시\n");
            //DeptId 가 1인것만 표시.
            foreach (var e in where)
            {
                Console.WriteLine("직원명 = {0} , 부서Id = {1}", e.Name, e.DeptId);
            }


            var whereAnd = (from e in employees
                            where e.DeptId.Equals(1) && e.Id > 2
                            select e);

            Console.WriteLine("\nDeptId 가 1이고 직원Id 가 2보다 큰 것만 표시\n");
            //DeptId 가 1이고 직원Id 가 2보다 큰 것만 표시
            foreach (var e in whereAnd)
            {
                Console.WriteLine("직원명 = {0} , 직원Id = {1} , 부서Id = {1}", e.Name, e.Id, e.DeptId);
            }


            var whereOr = (from e in employees
                            where e.DeptId.Equals(1) || e.Id > 2
                            select e);
            Console.WriteLine("\nDeptId 가 1이거나 직원Id 가 2보다 큰 것만 표시\n");

            //DeptId 가 1이거나 직원Id 가 2보다 큰 것만 표시
            foreach (var e in whereOr)
            {
                Console.WriteLine("직원명 = {0} , 직원Id = {1} , 부서Id = {1}", e.Name, e.Id, e.DeptId);
            }


            Console.WriteLine("\n아무 키나 누르세요.");
            Console.ReadKey();
        }
    }
    #endregion
}

결과

DeptId 가 1인것만 표시

직원명 = William , 부서Id = 1
직원명 = Benjamin , 부서Id = 1

DeptId 가 1이고 직원Id 가 2보다 큰 것만 표시

직원명 = Benjamin , 직원Id = 3 , 부서Id = 3

DeptId 가 1이거나 직원Id 가 2보다 큰 것만 표시

직원명 = William , 직원Id = 1 , 부서Id = 1
직원명 = Benjamin , 직원Id = 3 , 부서Id = 3
직원명 = Hong , 직원Id = 4 , 부서Id = 4
직원명 = Kim , 직원Id = 5 , 부서Id = 5

아무 키나 누르세요.

SQL

--Where
SELECT Name, DeptId
FROM employees
WHERE DeptId = 1;

--Where and
SELECT Name, Id, DeptId
FROM employees
WHERE DeptId = 1
AND Id > 2;

--Where or
SELECT Name, Id, DeptId
FROM employees
WHERE DeptId = 1
OR Id > 2;

'트레이닝' 카테고리의 다른 글

블레이저란 무엇인가?  (0) 2021.02.14
Join 쿼리  (0) 2020.07.08
쿼리 연산자  (0) 2020.07.08
라우팅.  (0) 2020.07.08
LINQ 소개  (0) 2020.07.07