在字符串中插入多个字符

时间:2018-02-12 00:57:13

标签: sql

只是想在sql上学习一些新技能,我不知道这是否可行但是,我的订单编号如下所示

"11074"
"11075"
"11076"
...and so on

但我需要输出:

"11-0:7-4"
"11-0:7-5"
"11-0:7-6"

然而,我使用的代码只允许我输出“11-076”,我找不到将':'或第二个' - '放入的方法。

SELECT
   LEFT(o.orderID,2) + '-' as OrderID_New
FROM
   ORDERS O

是否有使用LEFT和RIGHT功能或是否需要使用其他功能?

我没有理由这样做,除了学习:)

谢谢, 丹

2 个答案:

答案 0 :(得分:1)

对于这种情况,只需构造字符串。假设您使用的是SQL Server:

select left(o.orderId, 2) + '-' + substring(o.orderId, 3, 1) + ':' + substring(o.orderId, 4, 1) + '-' + right(o.orderId, 1)

您也可以使用stuff()功能:

select stuff(stuff(stuff(o.orderId, 5, 0, '-'), 4, 0, ':'), 3, 0, '-')

答案 1 :(得分:0)

在MySQL中,您可以使用substring和concat函数。

SELECT CONCAT(
  SUBSTRING(orderId,1,2),'-',
  SUBSTRING(orderId,3,1),';',
  SUBSTRING(orderId,4,1),'-',
  SUBSTRING(orderId,5,1)) 
FROM ORDERS;