首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Teradata中使用Case-When

在Teradata中使用Case-When
EN

Stack Overflow用户
提问于 2018-10-26 23:42:55
回答 1查看 1.2K关注 0票数 0

简单的问题,但让我疯狂了一段时间。在Teradata中有下表

代码语言:javascript
复制
A       B
112211  
113311  56
226144  61
996688  66
005400  
771277 

对于col-B中的空白字段,需要从col-A中提取数字,例如:

代码语言:javascript
复制
SELECT A
CASE 'B'
WHEN 'B' IS NULL THEN SUBSTR('A',3,4)
END AS 'B'
FROM TABLE_T1;

引用了一些文档,但没有在上面的查询中了解问题所在。这个查询将在MySQL上工作,但为什么不能在Teradata中使用。

预期O/P:

代码语言:javascript
复制
A       B
112211  22
113311  56
226144  61
996688  66
005400  54
771277  12
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-26 23:48:58

您可以使用这种形式的case expression,注意,区别是case when ...而不是case b when ...。此外,单引号仅用于文字,双引号用于标识。(请注意您使用单引号的原因。)

代码语言:javascript
复制
SELECT
      A
    , CASE WHEN B IS NULL THEN SUBSTR(A,3,4) 
           ELSE B 
      END AS "B"
FROM TABLE_T1;

但是您也可以使用coalesce()来实现这一点,我相信:

代码语言:javascript
复制
SELECT
      A
    , coalesce(B ,SUBSTR(A,3,4) AS "B"
FROM TABLE_T1;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53017503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档