【发布时间】:2009-02-12 19:41:38
【问题描述】:
我在为 Oracle 和 MS SQL 服务器编写 SQL 语句时遇到问题。我想编写 SQL 以便它在两者中都有效。我不想搞乱设置数据库类型变量和切换
我有一列课程名称,其值如下:
9RA923.2008W
1223.200710
P0033330.200901
我想选择“.”右边的所有内容。
在 oracle 中我正在使用这个:
SELECT substr(bom_course_id, instr(bom_course_id, '.')+1) FROM ...
在 MSSQL Server 中我可以使用这个:
SELECT SUBSTRING(bom_course_id, CHARINDEX('.', bom_course_id)+1 ) FROM ...
有没有人有一个聪明的方法可以选择点后面的最后一个字符,在 Oracle 或 MS SQL 中使用相同的 SQL 语句。
不幸的是,我不知道“。”之前或之后会有多少个字符。 它也不是完全的数字,我不能只指望数字。
我真希望有一个 SQL 标准。
【问题讨论】:
-
为了更清楚,我需要拆分“。” - 我不知道点之前或之后有多少个字符。
-
+1 用于使用“平台中立”而不是“平台无关”。
标签: sql sql-server oracle standards platform-independent