似乎没有关于T-SQL以及在SQLite和其他非Microsoft SQL实现中使用它的能力的任何明确信息。我遇到的大多数文章都说它是Microsoft专有的,所以我们可以在SQLite数据库上使用CASE等T-SQL语句吗?
答案 0 :(得分:14)
T-SQL是Microsoft的ANSI SQL标准的实现(方言)。与大多数实现一样,部分是专有的而非标准的,对于其他平台而言是允许但不是惯用的怪癖,以及未实现的标准中定义的项目。 MySQL,sqlite和其他人的方式是一样的,因此有时候对另一个平台的怪癖会使“正确”和符合标准的T-SQL在该平台上被打破。
换句话说,如果你了解T-SQL,你就知道你需要为SQLite,MySQL,oracle,db2,Informix,Access等编写查询的大约85%。但是,会有一些障碍;绝对不要指望为一个平台编写的代码可以在另一个平台上工作。
CASE
是其中一种情况,其中各种各样的sql往往不同,而许多其他实现选择基于IF
的语法。另一方面,核心SELECT
,FROM
,WHERE
关键字往往更加一致。
答案 1 :(得分:8)