Tite SQL(transact-SQL)在SQLite和其他SQL数据库中有效吗?

dli*_*wak 9 mysql sql t-sql sqlite

似乎没有关于T-SQL以及在SQLite和其他非Microsoft SQL实现中使用它的能力的任何明确信息.我遇到的大多数文章都说它是Microsoft专有的,所以我们可以在SQLite数据库上使用CASE等T-SQL语句吗?

Joe*_*orn 14

T-SQL是Microsoft的ANSI SQL标准的实现(方言).与大多数实现一样,有些部分是专有的而不是标准的,对于其他平台而言是允许但不是惯用的怪癖,以及未实现的标准中定义的项目.MySQL,sqlite和其他人的方式是一样的,因此有时候与另一个平台的怪癖会使"正确"和符合标准的T-SQL在该平台上被破坏.

换句话说,如果你知道T-SQL,你知道的,你需要编写的SQLite,MySQL和甲骨文,DB2,Informix中,访问等,但会有一些颠簸查询什么约85%; 绝对不要指望为一个平台编写的代码在另一个平台上工作.

CASE是其中一种情况,其中各种风格的sql往往不同,而许多其他实现选择基于的语法IF.核心SELECT,FROM,WHERE关键字,而另一方面,更趋于一致.

  • TransactSQL(T-SQL)是Sybase在复制它之前对SQL语言的扩展,它仍然是最接近MSSQL Server语法的东西(虽然差异已经发展). (2认同)
  • @hardmath只是要明确一点,微软没有"从*拷贝*"来自Sybase的T-SQL,他们*购买*它.只是不希望有任何错误的看法,因为"复制"的代码往往暗示"被盗".http://en.wikipedia.org/wiki/Microsoft_SQL_Server (2认同)

Mit*_*eat 8

ANSI SQL是标准的结构化查询语言.

大多数数据库供应商支持SQL T-SQL是Microsoft的ANSI SQL版本.