程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了SQL如何连接两列添加逻辑条件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决SQL如何连接两列添加逻辑条件?

开发过程中遇到SQL如何连接两列添加逻辑条件的问题如何解决?下面主要结合日常开发的经验,给出你关于SQL如何连接两列添加逻辑条件的解决方法建议,希望对你解决SQL如何连接两列添加逻辑条件有所启发或帮助;

假设我有一个包含以下列的表格:

+------+------+------+
| Col1 | Col2 | Col3 |
+------+------+------+
| A    | A    | .    |
| B    | .    | B    |
| C    | .    | .    |
+------+------+------+

如果我将 Col2 与 Col3 连接,我会得到这个结果:

+------+--------+
| Col1 | Col2+3 |
+------+--------+
| A    |   A.   |
| B    |   .b   |
| C    |   ..   |
+------+--------+

但想要的结果如下:

+------+--------+
| Col1 | Col2+3 |
+------+--------+
| A    |    A   |
| B    |    B   |
| C    |    .   |
+------+--------+

我怎么能这样做?

{updatE} 到目前为止我尝试过的:

select col1,COALESCE(NULLIF(Col2,'.'),NULLIF(Col3,'.')) FROM db.table;

它部分起作用:如果 Col2 = '.'和 Col3 = '.'结果是 [NulL] 并且所需的输出是 '.',不是 '..' 也不是 [NulL]

解决方法

有几个选项可以检查空值并选择不为空的值,例如:

 Case Condition 

CASE  
WHEN (Col2 IS NOT NULL) THEN Col2  
WHEN (Col3 IS NOT NULL) THEN Col3  
ELSE '.'  
END 

另一种选择

COALESCE(Col2,Col3) AS [Col2+3]  

**可能需要根据上述语法的用法更改语法,仅作为示例。

,

这是连接两列并用空字符串替换点的方法,之后如果它的空白/空字符串(当两列都有点时发生),则用单个点替换它

select col1,case when replace(concat(col2,col3),'.','')='' then
                  '.' 
             else replace(concat(col2,'') 
         end as col2_3
  from table
,

你可以在你的解决方案中添加一个 ISNULL

select col1,ISNULL( COALESCE(NULLIF(Col2,'.'),NULLIF(Col3,'.')),'.')
FROM table
,

您已经在使用 COALESCE()。只需添加另一个参数:

select col1,COALESCE(NULLIF(Col2,' .'),'.')
FROM db.table;

如果前两个参数是 NULL,那么它将返回 '.'

大佬总结

以上是大佬教程为你收集整理的SQL如何连接两列添加逻辑条件全部内容,希望文章能够帮你解决SQL如何连接两列添加逻辑条件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: