扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:csdn 来源:csdn 2009年12月18日
关键字: MS-SQL Server 问答
三个字段两两相同取的其一
表T_Zone_Inf
Level1 Level2 Level3
-------------------------------------------------- -------------------------------------------------- 安徽省 安庆市 安庆市
安徽省 蚌埠市 蚌埠市
安徽省 亳州市 亳州市
安徽省 巢湖市 巢湖市
北京市 北京市 海淀区
安徽省 滁州市 定远县
陕西省 商洛市 镇安县
需要得到结果:
level1+level2+leve3
安徽省安庆市
安徽省蚌埠市
安徽省亳州市
安徽省巢湖市
北京市海淀区
安徽省滁州市定远县
陕西省商洛市镇安县
SQL codecreate table T_Zone_Inf(
Level1 nvarchar(10),
Level2 nvarchar(10),
Level3 nvarchar(10)
)
go
create function myWork(@L1 nvarchar(10),@L2 nvarchar(10),@L3 nvarchar(10))
returns nvarchar(30)
as
begin
declare @results nvarchar(30)
if (@L1 = @L2)
begin
set @results = @L1 + @L3
end
else
begin
if (@L2 = @L3)
begin
set @results = @L1 + @L2
end
else
begin
set @results = @L1 + @L2 + @L3
end
end
return @results
end
select dbo.myWork(Level1,Level2,Level3) from T_Zone_Inf
SQL codeCREATE TABLE T_Zone_Inf (Level1 varchar(20),Level2 varchar(20),Level3 varchar(20))
insert into T_Zone_Inf select '安徽省','安庆市','安庆市'
union all select '安徽省','蚌埠市','蚌埠市'
union all select '安徽省','亳州市','亳州市'
union all select '安徽省','巢湖市','巢湖市'
union all select '北京市','北京市','海淀区'
union all select '安徽省','滁州市','定远县'
union all select '陕西省','商洛市','镇安县'
CREATE VIEW VB_T_Zone_Inf
AS
SELECT
ALevel=Level1+
CASE WHEN Level2=Level3 THEN Level2
ELSE Level2+Level3
END
FROM T_Zone_Inf
SELECT * FROM VB_T_Zone_Inf
/*
ALevel
------------------------------------------------------------
安徽省安庆市
安徽省蚌埠市
安徽省亳州市
安徽省巢湖市
北京市北京市海淀区
安徽省滁州市定远县
陕西省商洛市镇安县
(所影响的行数为 7 行)
*/
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者