【问题标题】:Is value on the list of values? (Oracle SQL)价值在价值清单上吗? (甲骨文 SQL)
【发布时间】:2017-06-22 02:15:23
【问题描述】:

以下适用于 SQL Server 和 MySQL,但如何修改它以作为正确的 Oracle 查询:

SELECT city FROM station WHERE LEFT(city, 1) IN ('a', 'e', 'i', 'o', 'u');

我被困在:

SELECT city FROM station WHERE SUBSTR(city,1, 1) IN ('a', 'e', 'i', 'o', 'u');

?

【问题讨论】:

  • 你的问题到底是什么?
  • 列出名称以“a”、“e”、“i”、“o”或“u”开头的所有城市
  • 您的查询有什么问题?
  • 好的,SQL Server 和 MySQL 不考虑字母是否大写

标签: mysql sql sql-server oracle


【解决方案1】:

只要您感兴趣的城市以小写字母开头,您的查询就完全没问题。如果不是这种情况,您可能需要使用 LOWER 函数:

SELECT city FROM station WHERE LOWER(SUBSTR(city,1, 1)) IN ('a', 'e', 'i', 'o', 'u');

【讨论】:

    【解决方案2】:

    如果您想要一个适用于所有三个数据库的版本,您可以使用like

    SELECT s.city
    FROM station s
    WHERE LOWER(s.city) LIKE 'a%' OR
          LOWER(s.city) LIKE 'e%' OR
          LOWER(s.city) LIKE 'i%' OR
          LOWER(s.city) LIKE 'o%' OR
          LOWER(s.city) LIKE 'u%';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-18
      • 2016-04-14
      • 1970-01-01
      • 2016-07-24
      • 2017-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多