首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于oracle中出现次数的重复值的sql case表达式

问基于oracle中出现次数的重复值的sql case表达式
EN

Stack Overflow用户
提问于 2015-03-25 01:29:11
回答 2查看 130关注 0票数 2

我正在试着看看我是否可以改进下面的case语句,或者找到更好的方法。根据HAVE的值,输出(WANT)总是由9组成的序列。

代码语言:javascript
复制
Have     Want
1        9
2        99
3        999
4        9999
5        99999
6        999999
7        9999999


Case Have when '1' then '9'
      when '2' then '99'
      when '3' then '999'
      when '4' then '9999'
      when '5' then '99999'
--it keeps going on and on-- for instance a 6 will have 6 9's , a 7 will have 7 9's, a 9 will have 9 9's--
end as Want

如果能有更好的方法来处理这个任务,我将不胜感激。数据库在oracle中

注意:我终于找到了一种让它工作的方法。我想我会和团队分享

代码语言:javascript
复制
select RPAD('9',LENGTH('9')*(HAVE),'9') from dual
EN

回答 2

Stack Overflow用户

发布于 2015-03-25 01:32:50

在T-SQL中使用replicate(),在MySQL中使用repeat()

代码语言:javascript
复制
select replicate('9', have_int)
票数 2
EN

Stack Overflow用户

发布于 2015-03-25 01:48:33

您可以以一种独立于数据库的方式使用substring():

代码语言:javascript
复制
select substring('999999999999', 1, have)

注意:有些数据库将substring()拼写为substr()。您也可以使用left()来实现此目的。或者,正如另一个答案所建议的那样,其中一个内置函数确实因数据库而不同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29239183

复制
相关文章

相似问题

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