判断两个字段
当这两个字段都为空时则第三个字段显示一
当这两个字段其中一个字段有值时则第三个字段显示那个值
当这两个字段都有值时则两个字段的值都在第三个字段中显示出来
case when 判断下这两个字段的值,再做对应处理
SELECT
CASE
WHEN col1 IS NULL AND col2 IS NULL THEN '一'
WHEN col1 IS NOT NULL AND col2 IS NULL THEN col1
WHEN col1 IS NULL AND col2 IS NOT NULL THEN col2
WHEN col1 IS NOT NULL AND col2 IS NOT NULL THEN col1 + ' ' + col2
END AS col3
FROM table;
一种很简单的写法,检查 field1 和 field2 是否为空,然后根据条件决定如何填充 field3 列:
SELECT COALESCE(field1 + ' ', '') + COALESCE(field2, '一') AS field3
FROM your_table
你们出学的一般都是用case when做 我这里也实现下:
SELECT CASE
WHEN field1 IS NOT NULL AND field2 IS NOT NULL
THEN field1 + ' ' + field2
WHEN field1 IS NOT NULL THEN field1 + ' '
ELSE '一'
END AS field3
FROM your_table
如果对field1和2有拼接想法,可以 使用CONCAT(field1, ' ', field2, '一'),所以最后得看你想输出什么样得格式,没有做不到得
我可以帮您写出实现该逻辑的SQL Server语句,具体如下:
SELECT
CASE
WHEN A IS NULL AND B IS NULL THEN 'A'
WHEN A IS NULL THEN B
WHEN B IS NULL THEN A
ELSE A + B
END AS C
FROM your_table;
该语句使用了CASE WHEN语句,根据A和B的值判断返回的C值。当A和B都为空时,返回"A";当A和B其中一个有值时,返回非空的那个字段的值;当A和B都有值时,返回A和B的值拼接在一起。您只需要将"your_table"替换为您所需要查询的表名即可。
参考资料中的内容可以辅助理解和学习SQL Server语言的其他知识点,如JOIN语句、数据权限控制等,但与该问题的解决方案没有直接关系。