我的感覺(jué)是,Accees數(shù)據(jù)庫(kù)雖然可以稱(chēng)得上是小型的關(guān)系型數(shù)據(jù)庫(kù),并且也是使用的結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL,但它的語(yǔ)法(主要體現(xiàn)在函數(shù)上),卻類(lèi)似vbscript的語(yǔ)法,我想,這應(yīng)該和Access屬于Office系列有關(guān),基于它的開(kāi)發(fā)和應(yīng)用,自然就與VBA扯上關(guān)系,因而Access的函數(shù)庫(kù)也就是VBA的函數(shù)庫(kù),而非SQL函數(shù)庫(kù)。下面,我們來(lái)具體看下Access和SQL Server在查詢(xún)語(yǔ)句的編寫(xiě)上具體的不同。
一、數(shù)據(jù)類(lèi)型轉(zhuǎn)換:
- Access: SELECT '調(diào)查'+CStr(Did) as diaocha FROM CZdengji
- SQL Server: select artid,'調(diào)查'+Cast(listid As varchar) as did from kingart where artdate>=getdate()
Access中SQL查詢(xún)的數(shù)據(jù)類(lèi)型轉(zhuǎn)換有很多函數(shù),每一個(gè)函數(shù)都可以強(qiáng)制將一個(gè)表達(dá)式轉(zhuǎn)換成某種特定數(shù)據(jù)類(lèi)型。具體如下:CBool(expression) 、CByte(expression) 、CCur(expression) 、CDate(expression) 、CDbl(expression) 、CDec(expression) 、CInt(expression) 、CLng(expression) 、CSng(expression) 、CStr(expression) 、CVar(expression) 、CStr(expression),相信不用說(shuō)明,大家也看得懂這各種轉(zhuǎn)換符的意思。
二、IIF函數(shù)(ACCESS專(zhuān)用)
- Access: SELECT Id,IIF(Isfinished=1,'已完成','進(jìn)行中'),Name,Diaocharen FROM CZdiaocha ORDER BY Isfinished ASC
- SQL Server 的寫(xiě)法就相對(duì)更多,可以自定義函數(shù),也可以使用case語(yǔ)句,如select Id,case Isfinished when 1 then '已完成'
when 0 then '進(jìn)行中' end,Name,Diaocharen FROM CZdiaocha ORDER BY Isfinished ASC
三、DISTINCT關(guān)鍵字用法: Access里面distinct(expression)的用法單一, expression 只能為指定字段,而不能為表達(dá)式,SQL Server則不同, expression 除了可以為單個(gè)字段,也可以為一個(gè)子查詢(xún)等復(fù)雜表達(dá)式。
四、日期格式化
- Access: 使用format()函數(shù),SELECT TOP 5 arttitle,format(artdate,'YY-MM-DD') as arttime FROM kingart WHERE listid=9,這里使用format()函數(shù),指定artdate(日期型)查詢(xún)出來(lái)的格式為YY-MM-DD。
- SQL Server: 使用convert()函數(shù),select Id,lanmu,title,content, convert(varchar(10),updatetime ,120) as update_time from news,這里的120,是指定格式為YY-MM-DD,如果是其他數(shù)字(101-120),就是其他的格式。
其它一些常用的SQL語(yǔ)句集錦
- SELECT Top 5 * From Food WHERE Fid not in(Select top 5 Fid FROM Food) //查詢(xún)第5到第10條記錄
- delete from Food where charindex('2007',uptime)>0 or charindex('2008', uptime )>0 //刪除Food表中uptime列包含有2007或2008的記錄,即刪除時(shí)間為2007年和2008年的更新記錄
- select Id,lanmu,title,content, convert(varchar(10),updatetime ,120) as update_time from news // SQL Server里面的convert函數(shù),轉(zhuǎn)換成 varchar(10)類(lèi)型, 120為指定轉(zhuǎn)換后的格式。
- select Mealtype as 餐別,Fname as 食物名稱(chēng),sum(rjjingshisz)/2 as 人均凈食生重總和 from CZdengji WHERE Did=6 group by Mealtype,Fname //分組查詢(xún),GROUP BY的本意就是重復(fù)的字段合為一,對(duì)應(yīng)的信息,進(jìn)行匯總(count、sum等運(yùn)算)
- Select Count(ID) from Flow where convert(varchar(21),visittime,120) like '2007-01-26% ' ,日期型數(shù)據(jù)模糊查詢(xún)。
- select * from ('MSDASQL','DRIVER={SQL Server};SERVER=服務(wù)器名字;UID=對(duì)端數(shù)據(jù)庫(kù)的賬號(hào);PWD=對(duì)端密碼', 對(duì)端數(shù)據(jù)庫(kù).權(quán)限者.對(duì)端的表) as 表 //跨服務(wù)器查詢(xún)
您可能感興趣的文章:- SQL Server中的數(shù)據(jù)復(fù)制到的Access中的函數(shù)
- Access轉(zhuǎn)Sql Server問(wèn)題 實(shí)例說(shuō)明
- Sql Server、Access數(shù)據(jù)排名的實(shí)現(xiàn)方法(例如:成績(jī)排名)
- SQLServer與Access常用SQL函數(shù)區(qū)別
- SQL 隨機(jī)查詢(xún) 包括(sqlserver,mysql,access等)
- 在ACCESS和SQL Server下Like 日期類(lèi)型查詢(xún)區(qū)別
- asp.net下Oracle,SQL Server,Access萬(wàn)能數(shù)據(jù)庫(kù)通用類(lèi)
- SQL SERVER 與ACCESS、EXCEL的數(shù)據(jù)轉(zhuǎn)換方法分享
- 將Access數(shù)據(jù)庫(kù)中數(shù)據(jù)導(dǎo)入到SQL Server中的詳細(xì)方法實(shí)例
- 八步解決ACCESS自動(dòng)編號(hào)問(wèn)題(將SQL SERVER 2000數(shù)據(jù)庫(kù),轉(zhuǎn)換為ACCESS數(shù)據(jù)庫(kù))
- 將ACCESS數(shù)據(jù)庫(kù)遷移到SQLSERVER數(shù)據(jù)庫(kù)兩種方法(圖文詳解)
- sqlserver,sqlite,access數(shù)據(jù)庫(kù)鏈接字符串整理
- 自己動(dòng)手把ACCESS轉(zhuǎn)換到SQLSERVER的方法
- Access 導(dǎo)入到SQL Server 2005的方法小結(jié)
- JavaScript使用ActiveXObject訪問(wèn)Access和SQL Server數(shù)據(jù)庫(kù)
- SQL Server數(shù)據(jù)復(fù)制到的Access兩步走