我有点不好意思:我被要求从数据库中的特定字符串开始接收注释,并将结果分成不同的列.
例如 - 如果返回的值是这样的:
COLUMN_ONE
--------------------
'D7ERROR username'
Run Code Online (Sandbox Code Playgroud)
回报需要是:
COL_ONE COL_TWO
--------------------
D7ERROR username
Run Code Online (Sandbox Code Playgroud)
一旦结构集的结构只是为了将字符串拆分为两个,是否可以定义列?
OMG*_*ies 46
取决于数据的一致性 - 假设单个空格是您希望在第一列和第二列中显示的内容之间的分隔符:
SELECT SUBSTR(t.column_one, 1, INSTR(t.column_one, ' ')-1) AS col_one,
SUBSTR(t.column_one, INSTR(t.column_one, ' ')+1) AS col_two
FROM YOUR_TABLE t
Run Code Online (Sandbox Code Playgroud)
Oracle 10g +具有正则表达式支持,根据您需要解决的情况提供更大的灵活性.它还有一个正则表达式子串方法......
参考:
tal*_*lek 36
使用REGEXP_SUBSTR就像:
SELECT REGEXP_SUBSTR(t.column_one, '[^ ]+', 1, 1) col_one,
REGEXP_SUBSTR(t.column_one, '[^ ]+', 1, 2) col_two
FROM YOUR_TABLE t;
Run Code Online (Sandbox Code Playgroud)