【问题标题】:Convert SQL server query to SQLite将 SQL 服务器查询转换为 SQLite
【发布时间】:2020-12-02 10:50:07
【问题描述】:

我有以下 SQL 服务器查询,我想将其转换为 SQLite 查询

我主要是在与别名左外连接作斗争。非常感谢任何帮助

SELECT t.col1, isnull(b.term_date, t.term_date) as term_date,
  FROM table1 t
  LEFT OUTER JOIN(
       SELECT form_num, max(avg_term_date) term_date
       FROM table2
       GROUP BY form_num
    ) b on b.form_num = t.form_num;

【问题讨论】:

  • ifnull 替换isnull 并在table1 的select 子句中删除term_date 的别名后的逗号,它在sqlite 在线编译器中对我有用

标签: sql sql-server sqlite


【解决方案1】:

coalesce() 正确查询,它看起来像标准SQL:

select t.col1,
       coalesce(b.term_date, t.term_date) as term_date
from table1 t left outer join
     (select form_num, max(avg_term_date) term_date
      from table2
      group by form_num
     ) b
     on b.form_num = t.form_num;

【讨论】:

  • 嗨@Gordon Linoff 抱歉,但我的问题是如何使用选择语句翻译左外连接。在 SQL Server 中你可以轻松做到这一点,但我不确定如何在 SQLite 中做到这一点?
  • @marou 。 . .我不知道您打算问什么,但问题是:“我想转换成 SQLite 查询”。这回答了您提出的问题。如果您有其他问题,请作为问题提出。
  • 当我尝试运行他们提供的查询时,我在我的编辑器中收到消息:“预期以下情况之一:ON USING”,因为它认为 SQLite 查询缺少一些额外的指令。谢谢。
  • @marou 。 . .除了原始查询中的拼写错误外,这在 SQLite 中可以正常工作:dbfiddle.uk/…
猜你喜欢
  • 2020-10-06
  • 2020-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多