只是想在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功能或是否需要使用其他功能?
我没有理由这样做,除了学习:)
谢谢, 丹
答案 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;