Sqlite3 与ms sql server的实际应用中常用的Transact-SQL差异
-- Sqlite3 与ms sql server的实际应用中常用的Transact-SQL差异
-- 1、空值
SELECT rowid
com_id,
customer_id,
corp_sim_name, ( case when tel_no is NULL then '' else ltrim(rtrim(tel_no)) end ) as tel_no,
strftime('%Y.%m.%d %H:%M:%f',mainten_datetime,'localtime') as mainten_datetime,mainten_datetime as mainten_datetime1
FROM Sdf00504
where (tel_no is NULL) and strftime('%Y.%m.%d %H:%M:%f',mainten_datetime,'localtime')
<=strftime('%Y.%m.%d %H:%M:%f','2018-05-28 10:09:11.000','localtime');
-- 2、时间截
-- 2.1、Sqlite3
select strftime('%Y.%m.%d %H:%M:%f','now','localtime') from Sdf00504; -- localtime :兼容IOS下,本地时间的时差同步 ,now :数据库前时间,注意:引号
select strftime('%Y.%m.%d %H:%M:%f',mainten_datetime,'localtime'),corp_sim_name, ( case when tel_no is NULL then '' else ltrim(rtrim(tel_no)) end ) as tel_no from Sdf00504 -- mainten_datetime :表字段,不用引号
where (tel_no is NULL) and strftime('%Y.%m.%d %H:%M:%f',mainten_datetime,'localtime')
<=strftime('%Y.%m.%d %H:%M:%f','2018-05-28 10:09:11.000','localtime');
-- 2.2、ms sql server
select tel_no,corp_sim_name, ( case when tel_no is NULL then '' else ltrim(rtrim(tel_no)) end ) as tel_no from Sdf00504
where (tel_no is NULL) and convert(varchar(23),mainten_datetime,121) <='2018-05-28 10:09:11.000'
-- 3、查询结果咧:增加行序号:Sqlite3自带默认 rowid 列,ms sql server需要使用临时表
-- 3.1、Sqlite3
select rowid, com_id,ivt_oper_listing,sd_date,BillDate, ( case when store_struct_id is NULL then '' else ltrim(rtrim(store_struct_id)) end ) as store_struct_id,clerk_id, CashAmount,i_AMount,RealAmount,ChangeAmount,sumoq, c_memo,corp_name,tel_no,dept_id,comfirm_flag
from pos_bill
-- 3.2、ms sql server
-- 创建临时表:
select identity(int,1,1) as rowid, com_id,ivt_oper_listing,sd_date,BillDate, ( case when store_struct_id is NULL then '' else ltrim(rtrim(store_struct_id)) end ) as store_struct_id,clerk_id, CashAmount,i_AMount,RealAmount,ChangeAmount,sumoq, c_memo,corp_name,tel_no,dept_id,comfirm_flag into #temp83110089609817889975420987085 from PosBill where (1=1) and (convert(varchar(23),sd_date,121)>='2016-01-23 08:00:00.000') and (convert(varchar(23),sd_date,121) <'2016-01-23 10:00:00.000')
-- 查询临时表:
select rowid, com_id,ivt_oper_listing,sd_date,BillDate, ( case when store_struct_id is NULL then '' else ltrim(rtrim(store_struct_id)) end ) as store_struct_id,clerk_id, CashAmount,i_AMount,RealAmount,ChangeAmount,sumoq, c_memo,corp_name,tel_no,dept_id,comfirm_flag from #temp83110089609817889975420987085 where (1=1) and (convert(varchar(23),sd_date,121)>='2016-01-23 08:00:00.000') and (convert(varchar(23),sd_date,121) <'2016-01-23 10:00:00.000') and (rowid>0) and (rowid<=800)
-- 用完后,及时删除临时表:
drop table #temp83110089609817889975420987085
-- 4、自增长字段及主键设置:
-- 4.1、Sqlite3 :
/* Disable foreign keys */
PRAGMA foreign_keys = 'off';
/* Database properties */
PRAGMA auto_vacuum = 0;
PRAGMA encoding = 'UTF-8';
PRAGMA page_size = 4096;
/* Drop table [CtL00001] */
DROP TABLE IF EXISTS [main].[CtL00001];
/* Table structure [CtL00001] */
CREATE TABLE [main].[CtL00001](
[id] "[int] IDENTITY"(1, 1) NOT NULL,
[c_tablename] varchar(300) PRIMARY KEY ASC ON CONFLICT ABORT NOT NULL, -- 主键
[c_tableTitle] varchar(300),
[c_type] char(1),
[c_use] char(1),
[LastTime_UpdateData] datetime,
[LastTime_Product] datetime);
/* Enable foreign keys */
PRAGMA foreign_keys = 'on';
-- 4.2、ms sql server
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CtL00001]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[CtL00001]
GO
CREATE TABLE [dbo].[CtL00001] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[c_tablename] [varchar] (300) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[c_tableTitle] [varchar] (300) COLLATE Chinese_PRC_CI_AS NULL ,
[c_type] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[c_use] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[LastTime_UpdateData] [datetime] NULL ,
[LastTime_UpdateStruct] [datetime] NULL ,
[LastTime_Product] [datetime] NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[CtL00001] WITH NOCHECK ADD
CONSTRAINT [PK_CtL00001] PRIMARY KEY CLUSTERED
(
[c_tablename]
) ON [PRIMARY]
GO
- MS SQL Server和Oracle的常用函数对比
- MS SQL Server 2000 中系统表应用技巧
- 【Database】常用数据库Oracle/MySQL/MS SQL Server 驱动包下载地址
- ms sqlserver 常用T-sql语句与函数
- 《MS SQL Server 2000管理员手册》系列——15. 使用Transact-SQL和Enterprise Manager管理数据表
- MS SQL Server时间常用函数
- 常用的 MS SQL Server 数据修复命令
- MS SQL SERVER 2000 常用 Tran-SQL 语句
- MS SQL Server 数据库日期时间函数的应用
- MS SQL Server 与 Oracle在应用上的不同 : 如果应用系统要迁移
- MS SQL SERVER 不常用命令合集
- ms sqlserver常用sql语句
- MS SQL Server常用管理sql statement--发送邮件
- 常用的 MS SQL Server 数据修复命令
- ms sqlserver 常用T-sql语句与函数
- 最初级的MS SQL Server DTS应用示例。
- 常用的 MS SQL Server 数据修复命令
- PostgreSQL与 MS SQLServer在过程语言中的差异
- MS SQL Server常用语句
- MS SQL Server 与 Oracle在应用上的不同 : 如果应用系统要迁移