但SQLite預設將大小寫視為不同結果,
但可以利用在來欄位名稱後加上COLLATE NOCASE以便忽略大小寫差異...
select * from TableName where AccNo='Dean' COLLATE NOCASE
參考自
sqlite查询忽略大小写,你踩坑了吗?
select * from TableName where AccNo='Dean' COLLATE NOCASE
--附加資料庫 ATTACH DATABASE 'C:/123.db' As 'Tmp_db'; --表格寫入附加資料庫 insert into Tmp_db.Company select * from Company --查詢附加資料庫表格 select * from Tmp_db.Company --解除附加資料庫 DETACH DATABASE 'Tmp_db';
select CorpNo as FieldNa from Company select FieldNa=CorpNo from Company
select * from (select CorpNo from Company) T (FieldNa)
--月份第一天 select N'月份第一天'=DATEADD(MM,DATEDIFF(MM,0,GETDATE()),0) --月份最後一天 select N'月份最後一天'=DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,0,GETDATE())+1,0)) --RESULT 月份第一天 ----------------------- 2015-01-01 00:00:00.000 月份最後一天 ----------------------- 2015-01-31 00:00:00.000
SELECT TOP (100) PERCENT * FROM TABLENAME ORDER BY FIELDNAME
--查詢包含特定字串之Proc、Function DECLARE @TmpStr NVARCHAR(MAX)='Factory=@CorpNo' SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_DEFINITION LIKE '%'+@TmpStr+'%' AND ROUTINE_TYPE ROUTINE_TYPE IN ('PROCEDURE','FUNCTION') --查詢包含特定字串之View SELECT TABLE_NAME,VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE VIEW_DEFINITION LIKE '%'+@TmpStr+'%'
--修改前將資料庫設定為單一使用者模式(SINGLE_USER) ALTER DATABASE DBName SET SINGLE_USER WITH ROLLBACK IMMEDIATE --修改資料庫定序 ALTER DATABASE DBName COLLATE Chinese_PRC_Stroke_CI_AS --修改後將資料庫改回允許有權限之帳號存取模式(MULTI_USER) ALTER DATABASE DBName SET MULTI_USER
select '前面空白'=CONVERT(VARCHAR,LEN(' 123ab')), '中間空白'=CONVERT(VARCHAR,LEN('12 3ab')), '後面空白'=CONVERT(VARCHAR,LEN('123ab ')) /*----------------------------------結果----------------------------------*/ 前面空白 中間空白 後面空白 ------------------------------ ------------------------------ ------------------------------ 6 6 5
select '前面空白'=CONVERT(VARCHAR,DATALENGTH(' 123ab')), '中間空白'=CONVERT(VARCHAR,DATALENGTH('12 3ab')), '後面空白'=CONVERT(VARCHAR,DATALENGTH('123ab ')) /*----------------------------------結果----------------------------------*/ 前面空白 中間空白 後面空白 ------------------------------ ------------------------------ ------------------------------ 6 6 6
select 'VARCHAR'=CONVERT(VARCHAR,DATALENGTH(CONVERT(VARCHAR,'2238# '))), 'NVARCHAR'=CONVERT(VARCHAR,DATALENGTH(CONVERT(NVARCHAR,'2238# '))), 'NCHAR'=CONVERT(VARCHAR,DATALENGTH(CONVERT(NCHAR,'2238# '))) /*----------------------------------結果----------------------------------*/ VARCHAR NVARCHAR NCHAR ------------------------------ ------------------------------ ------------------------------ 6 12 60
--建立測試表格/資料 IF (select OBJECT_ID('tempdb..#Mail_Tmp')) IS NOT NULL DROP TABLE #Mail_Tmp CREATE TABLE #Mail_Tmp (AccNo VARCHAR(10), EMail VARCHAR(MAX)) INSERT INTO #Mail_Tmp VALUES ('dean','dean@gmail.com') INSERT INTO #Mail_Tmp VALUES ('phoebe','phoebe@gmail.com') --抓取資料 IF EXISTS (select * from #Mail_Tmp) BEGIN DECLARE @tableHTML NVARCHAR(MAX) ; SET @tableHTML = N'<H1>用戶郵件帳號明細</H1>' + N'<table border="1">' + N'<th>使用者</th>'+ N'<th>email</th>'+ N'</tr>' + CAST ( (select td=AccNo,'', td=EMail,'' from #Mail_Tmp FOR XML PATH('tr'), TYPE ) AS NVARCHAR(MAX) ) + N'</table>'+ N'此郵件由系統發出' EXEC msdb.dbo.sp_send_dbmail @profile_name='ERP_DB',--Database Mail設定檔名稱 @recipients='dean@gmail.com',--收件者 @copy_recipients='',--CC @subject='用戶郵件帳號明細',--主旨 @body=@tableHTML, @body_format=HTML--使用HTML格式 END
--範例 --建立暫存表 IF UPPER(@ServerNa) = 'SERVAER_A' BEGIN IF (SELECT OBJECT_ID('tempdb..#STUL')) IS NOT NULL DROP TABLE #STUL select DISTINCT CorpNo,IONo into #STUL from [SERVAER_A].InnovaERP.dbo.SysTableUpdateLog where PrgType=@PrgType END ELSE IF UPPER(@ServerNa) = 'SERVAER_B' BEGIN IF (SELECT OBJECT_ID('tempdb..#STUL')) IS NOT NULL DROP TABLE #STUL select DISTINCT CorpNo,IONo into #STUL from [SERVAER_B].InnovaERP.dbo.SysTableUpdateLog where PrgType=@PrgType END
--錯誤訊息 訊息 2714,層級 16,狀態 1,程序 SP_XXX,行 24 資料庫中已經有一個名為 '#STUL' 的物件。通常在不同的IF ELSE判斷子句中,應該可以視為獨立的事件,
--建立暫存表 IF (SELECT OBJECT_ID('tempdb..#STUL')) IS NOT NULL DROP TABLE #STUL SELECT TOP 1 CorpNo,IONo INTO #STUL FROM SysTableUpdateLog IF UPPER(@ServerNa) = 'SERVAER_A' BEGIN INSERT INTO #STUL select DISTINCT CorpNo,IONo from [SERVAER_A].InnovaERP.dbo.SysTableUpdateLog where PrgType=@PrgType END ELSE IF UPPER(@ServerNa) = 'SERVAER_B' BEGIN INSERT INTO #STUL select DISTINCT CorpNo,IONo from [SERVAER_B].InnovaERP.dbo.SysTableUpdateLog where PrgType=@PrgType END
--列出目前連線的資訊 use master--use master系統資料庫 select c.session_id, c.connect_time,s.login_time, c.client_net_address, s.login_name,s.status from sys.dm_exec_connections c left join sys.dm_exec_sessions s on c.session_id = s.session_id
--檢查特定資料表是否存在 select OBJECT_ID('Prod') --或 select * from sys.sysobjects where id=OBJECT_ID('Prod') --檢查特定資料表中特定欄位是否存在 select * from sys.syscolumns where id=OBJECT_ID('Prod') and name='ProdNo'如果是要查詢暫存表中的相關資訊,作法如下
--檢查特定暫存資料表是否存在 select OBJECT_ID('tempdb..#Prod') --或 select * from tempdb..sysobjects where id=OBJECT_ID('tempdb..#Prod') --檢查特定暫存資料表中特定欄位是否存在 select * from tempdb..syscolumns where id=OBJECT_ID('tempdb..#Prod') and name='ProdNo'