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

SQLServerでのIFステートメントのしくみ

    ほとんど(おそらくすべて )プログラミング言語には、何らかの形式のIFが含まれます プログラマーが条件付きコードを記述できるようにするステートメント。つまり、 ifの場合にのみ実行されるコード 特定の条件が真です。

    とてもシンプルなコンセプトです。基本的には次のようになります:

    「もしそうなら、そうしてください。」

    ほとんどの言語は単にそれをIFと呼んでいます 、ただし、名前に独自のひねりを加えたものもあります(たとえば、ColdFusion / CFMLでは、CFIFと呼ばれます。 。

    いずれにせよ、彼らは本質的に同じことをします。

    SQL Server(より正確にはそのプログラミング言語T-SQL)では、IFと呼ばれます。 。

    IFがどのように機能するかを示す基本的な例を次に示します。 ステートメントは機能します。

    IF 1 < 2 SELECT 'True';

    結果:

    True

    この場合、評価する式は1 < 2です。 。 1が2未満であることは事実なので、SELECT ステートメントが実行され、True 返されました。

    ただし、式がfalseの場合、何も起こりません。

    次の例はこれを示しています:

    IF 1 > 2 SELECT 'True';

    結果:

    Commands completed successfully.

    SQL Serverが教えてくれたのは、コマンドが正常に完了したということだけです。他に何も指定されていないため、他に何も返されませんでした。

    IF…ELSEステートメント

    SQL Serverでは、IF ステートメントには、オプションのELSEが付属しています 、式がfalseを返した場合に、代替手段を提供できます。

    したがって、「これなら、これをやる、そうでなければ、これをやる」と言っているようなものです。

    この場合、オプションのELSEを追加できます IFに ステートメント、それがIF... ELSEになるように ステートメント。

    IF 1 > 2
           SELECT 'True';
    ELSE 
           SELECT 'False';

    結果:

    False

    これで、式がfalseの場合にも結果が得られます。

    ネストされたIFステートメント

    IFの優れた点の1つ ステートメントは、それらをネストできるということです。つまり、IFをさらに追加できます 元のステートメント内のステートメント、およびそれらの内部のステートメントなど

    IFをいくつでもネストできます あなたが好きなようにステートメント。使用可能なメモリの量によってのみ制限されます。

    IFをネストする例を次に示します。 別の内部のステートメント。

    DECLARE @bankBalance int = 123;
    IF @bankBalance > 100
        IF @bankBalance > 150
            SELECT 'Rich!';
        ELSE
            SELECT 'Wealthy';
    ELSE 
        SELECT 'Poor';

    結果:

    Wealthy

    IF…ELSEIFステートメント

    IF... ELSE IFとしても使用できます 声明。

    DECLARE @bankBalance int = 123;
    IF @bankBalance > 150
        SELECT 'Rich!';
    ELSE IF @bankBalance > 100
        SELECT 'Wealthy';
    ELSE
        SELECT 'Poor';

    結果:

    Wealthy

    1. 自動車修理店のデータモデル

    2. SQL ServerManagementStudioで記憶されているログインとパスワードのリストを削除する

    3. SQL ServerビューへのODBCリンクテーブルをプログラムで作成し、編集可能にするにはどうすればよいですか?

    4. AndroidSQLiteクエリ-最新の10レコードを取得