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

SelectQueryで条件付き書式設定にCaseステートメントを使用する方法-SQLServer/TSQLチュートリアルパート116

    シナリオ:

    SQL Server開発者として作業している場合は、国の略語を含むCountryShortName列を持つdbo.Customerテーブルをクエリする必要があります。 CountryShortName列の値を使用して、CountryFullnameで別の列を生成するとします。どのようにそれをしますか?

    解決策:

    ユースケース式を使用して、CountryShortNameの値に応じてこの新しい列を生成できます。この例では、単一の列のみを使用していますが、複数の列を使用して複数の条件を確認できます。
    サンプルデータを使用してdbo.Customerテーブルを作成し、Case式を使用してSelectステートメントを記述します。
    Create table dbo.Customer
     (Id int,
      FName VARCHAR(50),
      LName VARCHAR(50),
      CountryShortName CHAR(2))
    GO
    insert into dbo.Customer
    Values (
    1,'Raza','M','PK'),
    (2,'Rita','John','US'),
    (3,'Sukhi','Singh',Null)
     
     
    1)以下に示すように、Caseの直後に値を確認したい列名を使用できます。次に、その列にすべての条件を書き込み、最後にEndをNewColumnNameとして使用します
    Select 
    FName,
    LName,
    CountryShortName,
    Case CountryShortName
    When 'Pk' Then 'Pakistan'
    When 'US' Then 'United States of America'
    When 'IN' Then 'India'
    Else 'Not Provided' 
    End AS CountryFullName
    From dbo.Customer
     
    SQLServerでCaseステートメントを使用する方法-SQLServer/TSQLチュートリアル
     
     Elseパーツを使用したくない場合は、それを削除できますが、値があり、条件と一致しない場合は、Nullを返します。私の場合、値が条件と一致しない場合は、Else部分を使用して「提供されていません」と表示したいと思います。
    2)Caseキーワードの直後に列名を使用しないでください> 以下に示すように、caseステートメントを記述することもできます。以下の例では、Caseの直後に列名を記述していません。この場合、Whenごとにcolumnと入力する必要があります。この記述方法は、複数の列または値の範囲の条件を確認する場合に使用されます。
    Select 
    FName,
    LName,
    CountryShortName,
    Case 
    When CountryShortName='Pk' Then 'Pakistan'
    When CountryShortName='US' Then 'United States of America'
    When CountryShortName='IN' Then 'India'
    Else 'Not Provided' 
    End AS CountryFullName
    From dbo.Customer
     
    SQLクエリで条件付き書式を設定するためのCaseステートメントの使用方法-SQLServer/TSQLチュートリアル
     

    1. STUFF()を使用してSQLServerの別の文字列に文字列を挿入する方法

    2. mssqlを使用して更新および注文する方法

    3. SQLintersectionのためにラスベガスに参加して$100を節約

    4. DESCRIBEコマンドを使用せずにOracleでテーブルを記述するにはどうすればよいですか?