假设我在表shipment
中有一个名称为OrderNo
的值为AO025631
。如何在oracle查询中获取字符串的前两个字符?
我想查询表格,以便我只能得到列值的前两个字符,即AO
。
我可以在SQL查询本身执行此操作吗?
假设我在表shipment
中有一个名称为OrderNo
的值为AO025631
。如何在oracle查询中获取字符串的前两个字符?
我想查询表格,以便我只能得到列值的前两个字符,即AO
。
我可以在SQL查询本身执行此操作吗?
SUBSTR(documentation):
SELECT SUBSTR(OrderNo, 1, 2) As NewColumnName from shipment
选择时,它像任何其他列。你应该给它一个名称(与As
关键字),并且可以在同一个语句选择其他列:
SELECT SUBSTR(OrderNo, 1, 2) As NewColumnName, column2, ... from shipment
select substr(orderno,1,2) from shipment;
你可能想看看在documentation了。
容易:
SELECT SUBSTR(OrderNo, 1, 2) FROM shipment;
看一看从装运here
SELECT SUBSTR('Take the first four characters', 1, 4) FIRST_FOUR FROM DUAL;
尝试选择SUBSTR(orderno,1,2);
只需使用SUBSTR函数。它需要3个参数:字符串列名,起始索引和子串长度:
select SUBSTR(OrderNo, 1, 2) FROM shipment;
你能解释什么是1和2吗?它是开始和结束索引? – Vivek 2011-06-03 09:46:18
第二个参数是起始索引,它是1(即1是第一个字符,2是第二个)。第三个参数是来自该索引的子串的字符数,在你的情况下,你需要前两个。 – Datajam 2011-06-03 09:49:16
'SUBSTR' =子串。 'Arg1' = columnName,'Arg2':返回字符串的第一个字符开始的位置。 'Arg3':返回字符串的长度。因此,对于你的情况,你想从'AO025631' =>'Arg2 = 1'的开始,你想要2个字符=>'Arg3 = 2'。 *请按照我的回复中的链接获取更多解释* – manji 2011-06-03 09:50:30