SQL新手在这里,但我找不到容易看到的解决方案:
以下查询似乎没有有效的语法(ORA-00904:无效的标识符),但其逻辑应该是明确的.如何在需要快速的查询中实现此目的?
SELECT * FROM table WHERE LEFT(column,4)="abcd"
Run Code Online (Sandbox Code Playgroud)
Oracle和其他一些产品都有substr.
SELECT * FROM tablename WHERE substr(columnname, 1, 4) = 'abcd'
Run Code Online (Sandbox Code Playgroud)
即字符串文字的单引号!
ANSI SQL具有substring:
SELECT * FROM tablename WHERE substring(columnname from 1 for 4) = 'abcd'
Run Code Online (Sandbox Code Playgroud)
其他人有left:
SELECT * FROM tablename WHERE LEFT(columnname,4) = 'abcd'
Run Code Online (Sandbox Code Playgroud)
为此,你应该使用like而不是left().首先,Oracle不支持left()(您需要substr()).其次,like可以使用索引,因为通配符不在字符串的开头:
SELECT *
FROM table
WHERE column like 'abcd%';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4040 次 |
| 最近记录: |