我在SQL服务器中有这一行查询,并希望在Oracle中转换它。有人能提供一些指针吗?
CAR_CD CAR_YR CAR_MONTH CAR_SEQ
LXR 2017 12 1234我希望这样的结果,在ORACLE数据库中使用下面的查询,而不是在SQWL中。
LXR1712001234
CAR_CD + SUBSTRING(CAST(CAR_YR AS VARCHAR(4)),3,2) + CAR_MONTH + RIGHT(REPLICATE('0',6) + CAST(CAR_SEQ AS VARCHAR(6)),6) AS CAR_NUMBER,发布于 2017-11-02 12:46:28
SELECT CAR_CD || SUBSTR(CAR_YR,-2) || CAR_MONTH || LPAD(CAR_SEQ,6,'0') FROM yourtable;尝尝这个。
发布于 2017-11-02 12:31:30
使用http://www.sqlines.com/online
并将concat操作符+替换为||:
SGTC_CD ||
SUBSTR(TO_CHAR(SG_FY(4)),3,2) ||
SG_MONTH || SUBSTR(RPAD('0', LENGTH('0') *6, '0') ||
TO_CHAR(SG_SEQ(6)),
GREATEST(-LENGTH(RPAD('0', LENGTH('0') *6, '0') ||
TO_CHAR(SG_SEQ AS VARCHAR2(6))),-6))发布于 2017-11-02 12:45:20
使用SUBSTR和LPAD
SELECT CAR_CD
|| SUBSTR( CAR_YR, -2 ) -- or SUBSTR( CAR_YR, 3, 2 )
|| CAR_MONTH -- or LPAD( CAR_MONTH, 2, '0' ) for a zero-padded string.
|| LPAD( CAR_SEQ, 6, '0' ) AS Car_number
FROM your_table但是,您最好将您的年度和月份列转换为单个DATE数据类型,然后您可以这样做:
SELECT CAR_CD
|| TO_CHAR( CAR_YEAR_MONTH_DATE, 'YYMM' ) -- or 'YYFMMM' without leading zero for month
|| LPAD( CAR_SEQ, 6, '0' ) AS Car_number
FROM your_tablehttps://stackoverflow.com/questions/47075349
复制相似问题