我的表有 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)
不确定你的意思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)