sql >> データベース >  >> RDS >> Mysql

ケース式とケースステートメント

    CASE 式は値に評価されます。つまり、ある条件に基づいて、一連の結果の1つに評価するために使用されます。
    例:

    SELECT CASE
        WHEN type = 1 THEN 'foo'
        WHEN type = 2 THEN 'bar'
        ELSE 'baz'
    END AS name_for_numeric_type
    FROM sometable`
    

    CASE ステートメントは、ある条件に基づいて、一連のステートメントの1つを実行します。
    例:

    CASE
        WHEN action = 'update' THEN
            UPDATE sometable SET column = value WHERE condition;
        WHEN action = 'create' THEN
            INSERT INTO sometable (column) VALUES (value);
    END CASE
    

    それらがどのように類似しているかはわかりますが、ステートメントはそうではありません 値に評価され、それ自体で使用できますが、式は式の一部である必要があります。クエリまたは割り当て。クエリにはステートメントを含めることができないため、クエリでステートメントを使用することはできません。たとえば、クエリ自体はステートメントであるため、何かを評価する必要がある式のみを含めることができます。 SELECT CASE WHEN condition THEN UPDATE table SET something; END CASE 意味がありません。




    1. MYSQLでストップワードをリセットするにはどうすればよいですか?

    2. SQLServerでのSHOWPLAN_XMLのしくみ

    3. ニーズに合わせたSQLServer監視ツールの選択

    4. データベース内のレコードのグループに並べ替え順序を格納するための最も効率的な方法は何ですか?