MySQLその他のデフォルト構文

2096 ワード

CASE

CASE
	WHEN 조건
	THEN '반환 값'
	WHEN 조건
	THEN '반환 값'
	ELSE 'WHEN 조건에 해당 안되는 경우 반환 값'
END
  • WHENとTHENはペアでなければなりません.
  • WHENとTHENは複数存在する可能性があります.
  • ELSEが存在する場合は、すべての条件に合致しない場合に戻り値を設定できます.
  • ELSEは存在せず、条件に合致せず、戻り値がない場合はNULLを返します.
  • サンプルケース



    SELECT
    	idx,
        CASE
    		WHEN type = '1'
    		THEN '의사'
    		WHEN type = '2'
    		THEN '장군'
    		WHEN type = '3'
    		THEN '왕'
    		ELSE '일반인'
    	END AS hero_type,
    	name
    FROM hero_collection;
    

    結果



    SUBQUERY


    サブクエリは、1つのSQL文に含まれる別のSQL文です.
    SELECT CustomerId, CustomerId = (SELECT CustomerId FROM customers WHERE CustomerId = 2)
    FROM customers
    WHERE CustomerId < 6

    IN, NOT IN


    INは、特定の値がサブクエリにあるかどうかをチェックします.
    SELECT *
    FROM customers
    WHERE CustomerId IN (SELECT CustomerId FROM customers WHERE CustomerId < 10)
    サブクエリは、「CustomerId」が10未満のデータを返すため、最終クエリデータの「CustomerId」も10未満である.
    INではなくNOT INを使用する場合、サブクエリでクエリされたレコード(10個未満)

    EXISTS


    EXISTSまたはNOT EXISTSは、返されるサブクエリに存在するレコードをチェックします.
    クエリーするレコードがある場合は「真」(TRUE)を返し、そうでない場合は「偽」(FALSE)を返します.
    SELECT EmployeeId
    FROM employees e
    WHERE EXISTS (
    	SELECT 1
    	FROM customers c
    	WHERE c.SupportRepId = e.EmployeeId
    	)
    ORDER BY EmployeeId
    サブクエリは、顧客テーブルの「SupportRepId」フィールドの値を従業員テーブルの「EmployeeId」フィールドの値と比較して、一致するレコードを取得します.

    FROM


    FROMはサブクエリも使用できます.
    SELECT *
    FROM (
    	SELECT CustomerId
    	FROM customers
    	WHERE CustomerId < 10
    	)
    次のように、クエリー文とサブクエリーを使用して、クエリー結果をテーブルまたはクエリーするオブジェクトとして指定できます.
    )
    https://extbrain.tistory.com/46