1

我正在研究更新我们的应用程序以使用 Firebird 以外的数据库服务器的可能性。我们依靠“STARTING WITH”来访问我们的分层数据。没有它,我看不出我们如何在不进行认真的重新设计的情况下迁移到另一个数据库。

如果您不熟悉“STARTS WITH”,它只会检查字符串字段是否以特定字符串开头,例如...

WHERE 'This is a test' STARTS WITH 'This is' ... 

将返回 true。如果列被索引,则索引将用于比较。

其他数据库服务器(尤其是 Oracle/MSSQL)是否支持“STARTING WITH”(或“STARTS WITH”)?

4

3 回答 3

9

实现这一点的标准 SQL 类似于 ... WHERE 'This is a test' like 'This is%';

于 2009-02-23T09:29:09.040 回答
0

一些数据库还支持 WHERE LEFT('This is a test', 7) = 'This is' (虽然我不记得这是否是 SQL 标准的一部分)。

于 2009-02-23T09:32:19.080 回答
0

Oracle 的 Select 有一个“Start With” http://www.oracle.com/pls/db10g/db10g.show_toc?which=main&partno=b10759&maxlevel=2§ion=&expand=41274">Oracle 文档 10g 用于分层查询。它是Oracle 多年(至少是 Oracle 8)。

不确定 SQL Server。

于 2009-02-23T09:42:24.623 回答