1合并两个字段
--如果zysl不为空 则合并zysl和yysl 否则合并zyjzsl和yyjzsl
select zysl,yysl,zyjzsl,yyjzsl from 表_健康体检表
select (case when zysl is not null then concat(zysl, yysl) else concat(zyjzsl, yyjzsl) end )as 左眼视力矫正视力 from 表_健康体检表
效果
2合并多个字段,判断是否为空
select nxgjb,szjb,xgjb,ybjb,sjxtjb,qtxtjb from 表_健康体检表
--合并多个字段 如果字段为空不合并,不为空就合并并且以逗号分隔 第一种方法没法判断字段是否为空
select (ISNULL(nxgjb,'') + ','+ISNULL(szjb,'') + ','+ISNULL(xgjb,'') + ','+ISNULL(ybjb,'') + ','+ISNULL(sjxtjb,'')+ ','+ISNULL(qtxtjb,'')) AS 现存主要健康问题 from 表_健康体检表
--合并多个字段 如果字段为空不合并,不为空就合并并且以逗号分隔
select concat((case nxgjb when '' then ''else nxgjb+','end),
(case szjb when '' then ''else szjb+','end),
(case xgjb when '' then ''else xgjb+','end),
(case ybjb when '' then ''else ybjb+','end),
(case sjxtjb when '' then ''else sjxtjb+','end),
(case qtxtjb when '' then ''else qtxtjb end)) AS aa from 表_健康体检表
效果
3其他合并字段方式
数值型:
select cast(a as varchar(10))+'--'+cast(b as varchar(10)) from tablename
字符型:
select a+'--'+b from tablename
---------------------------------------------------------------
---------------------------------------------------------------
字符型:
varchar
select a+'--'+b from tablename
char
select rtrim(a)+'--'+rtrim(b) from tablename