条件选择

0 sql-server

我的表有 4 列(name, A, B, C)

我需要构建一个具有以下逻辑的查询:

Select name,
    a as value1,
    b or c as value2
from table
Run Code Online (Sandbox Code Playgroud)

逻辑:

A <> ''
If B <> '' 
    then value2 = b else 
    if c <> '' then value2 = c 
        else value2 = '' 
Run Code Online (Sandbox Code Playgroud)

oou*_*ire 5

不确定你的意思A <> '';但这里有一个例子,至少应该给你正确的想法。

USE [tempdb] ;
GO

CREATE TABLE [dbo].[tbl]
(
    [name] VARCHAR(15) NULL
  , [A]    VARCHAR(15) NULL
  , [B]    VARCHAR(15) NULL
  , [C]    VARCHAR(15) NULL  
);
GO

INSERT INTO [dbo].[tbl] VALUES ('name1','A1','','');
INSERT INTO [dbo].[tbl] VALUES ('name2','A2','','C2');
INSERT INTO [dbo].[tbl] VALUES ('name3','','B3','C3');
GO

SELECT
    [name]
  , [A] AS value1
  , CASE WHEN [B] <> '' THEN [B]
         WHEN [C] <> '' THEN [C]
         ELSE ''
    END AS value2
FROM
    [dbo].[tbl];
GO

-- Clean up
DROP TABLE [dbo].[tbl];
GO
Run Code Online (Sandbox Code Playgroud)