How to write the equivalent SQL case statement for query given below?

前端 未结 2 1290
南方客
南方客 2020-12-12 06:48

This is my working query:

Query = \"select Cust_Id,Card_Number,Clients_Title,Address_Current,Phone_Number,Mobile_Number from Customer_New Where 1=1\";
try
{
         


        
相关标签:
2条回答
  • 2020-12-12 07:14
    SELECT        Cust_Id, Clients_Title, Card_Number, Key_Person, Address_Current, Phone_Number, Mobile_Number, AreaLocation
        FROM            Customer_New
            where        (CASE
                WHEN @Clients_Title != ''   THEN Clients_Title=@Clients_Title
              ELSE
                 NULL IS NULL
              END)
              AND(CASE
                WHEN @Address_Current != '' THEN Address_Current =@Address_Current
              ELSE
                 NULL IS NULL
              END)
                      AND(CASE
                WHEN @Phone_Number != '' THEN Phone_Number=@Phone_Number
              ELSE
                 NULL IS NULL
              END)
              AND(CASE
                WHEN @Mobile_Number != '' THEN Mobile_Number=@Mobile_Number
              ELSE
                 NULL IS NULL
              END)
              AND(CASE
                WHEN @AreaLocation != '' THEN AreaLocation =@AreaLocation
              ELSE
                 NULL IS NULL
              END)
    
    0 讨论(0)
  • 2020-12-12 07:21

    I think you just want this - no CASE required:

    SELECT Cust_Id, Clients_Title, Card_Number, Key_Person, Address_Current, Phone_Number, Mobile_Number, AreaLocation
    FROM Customer_New
        WHERE
          (@Clients_Title = '' OR Clients_Title LIKE '%'+@Clients_Title+'%') AND
          (@Address_Current = '' OR Address_Current LIKE '%'+@Address_Current+'%') AND
          (@Phone_Number = '' OR Phone_Number LIKE '%'+@Phone_Number+'%') AND
          (@Mobile_Number = '' OR Mobile_Number LIKE '%'+@Mobile_Number+'%') AND
          (@AreaLocation = '' OR AreaLocation LIKE '%'+@AreaLocation+'%')
    

    Because that at least closely resembles your non-SQL code.

    0 讨论(0)
提交回复
热议问题