1.   
2. 18、字符串函数   
3. ASCII() --函数返回字符表达式最左端字符的ASCII 码值   
4. CHAR() --函数用于将ASCII 码转换为字符   
5. --如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值   
6. LOWER() --函数把字符串全部转换为小写   
7. UPPER() --函数把字符串全部转换为大写   
8. STR() --函数把数值型数据转换为字符型数据   
9. LTRIM() --函数把字符串头部的空格去掉   
10. RTRIM() --函数把字符串尾部的空格去掉   
11. LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串   
12. CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置   
13. SOUNDEX() --函数返回一个四位字符码   
14. --SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值   
15. DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异   
16. --0 两个SOUNDEX 函数返回值的第一个字符不同   
17. --1 两个SOUNDEX 函数返回值的第一个字符相同   
18. --2 两个SOUNDEX 函数返回值的第一二个字符相同   
19. --3 两个SOUNDEX 函数返回值的第一二三个字符相同   
20. --4 两个SOUNDEX 函数返回值完全相同   
21.   
22. QUOTENAME() --函数返回被特定字符括起来的字符串   
23. /*select quotename('abc', '{') quotename('abc')   
24. 运行结果如下   
25. ----------------------------------{   
26. {abc} [abc]*/   
27. REPLICATE() --函数返回一个重复character_expression 指定次数的字符串   
28. /*select replicate('abc', 3) replicate( 'abc', -2)   
29. 运行结果如下   
30. ----------- -----------   
31. abcabcabc NULL*/   
32. REVERSE() --函数将指定的字符串的字符排列顺序颠倒   
33. REPLACE() --函数返回被替换了指定子串的字符串   
34. /*select replace('abc123g', '123', 'def')   
35. 运行结果如下   
36. ----------- -----------   
37. abcdefg*/   
38. SPACE() --函数返回一个有指定长度的空白字符串   
39. STUFF() --函数用另一子串替换字符串指定位置长度的子串   
40.   
41. 19、数据类型转换函数----   
42. CAST() 函数语法如下   
43. CAST() (<expression> AS <data_ type>[ length ])   
44. CONVERT() 函数语法如下   
45. CONVERT() (<data_ type>[ length ], <expression> [, style])   
46. select cast(100+99 as char) convert(varchar(12), getdate())   
47. 运行结果如下   
48. ------------------------------ ------------   
49. 199 Jan 15 2000   
50. 20、日期函数----   
51. DAY() --函数返回date_expression 中的日期值   
52. MONTH() --函数返回date_expression 中的月份值   
53. YEAR() --函数返回date_expression 中的年份值   
54. DATEADD(<datepart> ,<number> ,<date>)   
55. --函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期   
56. DATEDIFF(<datepart> ,<number> ,<date>)   
57. --函数返回两个指定日期在datepart 方面的不同之处   
58. DATENAME(<datepart> , <date>) --函数以字符串的形式返回日期的指定部分   
59. DATEPART(<datepart> , <date>) --函数以整数值的形式返回日期的指定部分   
60. GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间   
61. 21、系统函数----   
62. APP_NAME() --函数返回当前执行的应用程序的名称   
63. COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值   
64. COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值   
65. COL_NAME(<table_id>, <column_id>) --函数返回表中指定字段的名称即列名   
66. DATALENGTH() --函数返回数据表达式的数据的实际长度   
67. DB_ID(['database_name']) --函数返回数据库的编号   
68. DB_NAME(database_id) --函数返回数据库的名称   
69. HOST_ID() --函数返回服务器端计算机的名称   
70. HOST_NAME() --函数返回服务器端计算机的名称   
71. IDENTITY(<data_type>[, seed increment]) [AS column_name])   
72. --IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中   
73. /*select identity(int, 1, 1) as column_name   
74. into newtable   
75. from oldtable*/   
76. ISDATE() --函数判断所给定的表达式是否为合理日期   
77. ISNULL(<check_expression>, <replacement_value>) --函数将表达式中的NULL 值用指定值替换   
78. ISNUMERIC() --函数判断所给定的表达式是否为合理的数值   
79. NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值   
80. NULLIF(<expression1>, <expression2>)   
81. --NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值   
82.    
83.   
84. 22、数学函数   
85. 1.绝对值   
86. S:select abs(-1) value   
87. O:select abs(-1) value from dual   
88. 2.取整(大)   
89. S:select ceiling(-1.001) value   
90. O:select ceil(-1.001) value from dual   
91. 3.取整(小)   
92. S:select floor(-1.001) value   
93. O:select floor(-1.001) value from dual   
94. 4.取整(截取)   
95. S:select cast(-1.002 as int) value   
96. O:select trunc(-1.002) value from dual   
97. 5.四舍五入   
98. S:select round(1.23456,4) value 1.23460   
99. O:select round(1.23456,4) value from dual 1.2346   
100. 6.e为底的幂   
101. S:select Exp(1) value 2.7182818284590451   
102. O:select Exp(1) value from dual 2.71828182   
103. 7.取e为底的对数   
104. S:select log(2.7182818284590451) value 1   
105. O:select ln(2.7182818284590451) value from dual; 1   
106. 8.取10为底对数   
107. S:select log10(10) value 1   
108. O:select log(10,10) value from dual; 1   
109. 9.取平方   
110. S:select SQUARE(4) value 16   
111. O:select power(4,2) value from dual 16   
112. 10.取平方根   
113. S:select SQRT(4) value 2   
114. O:select SQRT(4) value from dual 2   
115. 11.求任意数为底的幂   
116. S:select power(3,4) value 81   
117. O:select power(3,4) value from dual 81   
118. 12.取随机数   
119. S:select rand() value   
120. O:select sys.dbms_random.value(0,1) value from dual;   
121. 13.取符号   
122. S:select sign(-8) value -1   
123. O:select sign(-8) value from dual -1   
124. ----------数学函数   
125. 14.圆周率   
126. S:SELECT PI() value 3.1415926535897931   
127. O:不知道   
128. 15.sin,cos,tan 参数都以弧度为单位   
129. 例如:select sin(PI()/2) value 得到1(SQLServer)   
130. 16.Asin,Acos,Atan,Atan2 返回弧度   
131. 17.弧度角度互换(SQLServer,Oracle不知道)   
132. DEGREES:弧度-〉角度   
133. RADIANS:角度-〉弧度   
134. ---------数值间比较   
135. 18. 求集合最大值   
136. S:select max(value) value from   
137. (select 1 value   
138. union  
139. select -2 value   
140. union  
141. select 4 value   
142. union  
143. select 3 value)a   
144. O:select greatest(1,-2,4,3) value from dual   
145. 19. 求集合最小值   
146. S:select min(value) value from   
147. (select 1 value   
148. union  
149. select -2 value   
150. union  
151. select 4 value   
152. union  
153. select 3 value)a   
154. O:select least(1,-2,4,3) value from dual   
155. 20.如何处理null值(F2中的null以10代替)   
156. S:select F1,IsNull(F2,10) value from Tbl   
157. O:select F1,nvl(F2,10) value from Tbl   
158. --------数值间比较   
159. 21.求字符序号   
160. S:select ascii('a') value   
161. O:select ascii('a') value from dual   
162. 22.从序号求字符   
163. S:select char(97) value   
164. O:select chr(97) value from dual   
165. 23.连接   
166. S:select '11'+'22'+'33' value   
167. O:select CONCAT('11','22')||33 value from dual   
168. 23.子串位置 --返回3   
169. S:select CHARINDEX('s','sdsq',2) value   
170. O:select INSTR('sdsq','s',2) value from dual   
171. 23.模糊子串的位置 --返回2,参数去掉中间%则返回7   
172. S:select patindex('%d%q%','sdsfasdqe') value   
173. O:oracle没发现,但是instr可以通过第四霾问问刂瞥鱿执问?BR> select INSTR('sdsfasdqe','sd',1,2) value from dual 返回6   
174. 24.求子串   
175. S:select substring('abcd',2,2) value   
176. O:select substr('abcd',2,2) value from dual   
177. 25.子串代替 返回aijklmnef   
178. S:SELECT STUFF('abcdef', 2, 3, 'ijklmn') value   
179. O:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual   
180. 26.子串全部替换   
181. S:没发现   
182. O:select Translate('fasdbfasegas','fa','我' ) value from dual   
183. 27.长度   
184. S:len,datalength   
185. O:length   
186. 28.大小写转换 lower,upper  
187. 29.单词首字母大写   
188. S:没发现   
189. O:select INITCAP('abcd dsaf df') value from dual   
190. 30.左补空格(LPAD的第一个参数为空格则同space函数)   
191. S:select space(10)+'abcd' value   
192. O:select LPAD('abcd',14) value from dual   
193. 31.右补空格(RPAD的第一个参数为空格则同space函数)   
194. S:select 'abcd'+space(10) value   
195. O:select RPAD('abcd',14) value from dual   
196. 32.删除空格   
197. S:ltrim,rtrim   
198. O:ltrim,rtrim,trim   
199. 33. 重复字符串   
200. S:select REPLICATE('abcd',2) value   
201. O:没发现   
202. 34.发音相似性比较(这两个单词返回值一样,发音相同)   
203. S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')   
204. O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dual   
205. SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比较soundex的差   
206. 返回0-4,4为同音,1最高   
207. 23、日期函数   
208. 35.系统时间   
209. S:select getdate() value   
210. O:select sysdate value from dual   
211. 36.前后几日   
212. 直接与整数相加减   
213. 37.求日期   
214. S:select convert(char(10),getdate(),20) value   
215. O:select trunc(sysdate) value from dual   
216. select to_char(sysdate,'yyyy-mm-dd') value from dual   
217. 38.求时间   
218. S:select convert(char(8),getdate(),108) value   
219. O:select to_char(sysdate,'hh24:mm:ss') value from dual   
220. 39.取日期时间的其他部分   
221. S:DATEPART 和 DATENAME 函数 (第一个参数决定)   
222. O:to_char函数 第二个参数决定   
223. 参数---------------------------------下表需要补充   
224. year yy, yyyy   
225. quarter qq, q (季度)   
226. month mm, m (m O无效)   
227. dayofyear dy, y (O表星期)   
228. day dd, d (d O无效)   
229. week wk, ww (wk O无效)   
230. weekday dw (O不清楚)   
231. Hour hh,hh12,hh24 (hh12,hh24 S无效)   
232. minute mi, n (n O无效)   
233. second ss, s (s O无效)   
234. millisecond ms (O无效)   
235. ----------------------------------------------   
236. 40.当月最后一天   
237. S:不知道   
238. O:select LAST_DAY(sysdate) value from dual   
239. 41.本星期的某一天(比如星期日)   
240. S:不知道   
241. O:SELECT Next_day(sysdate,7) vaule FROM DUAL;   
242. 42.字符串转时间   
243. S:可以直接转或者select cast('2004-09-08'as datetime) value   
244. O:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;   
245. 43.求两日期某一部分的差(比如秒)   
246. S:select datediff(ss,getdate(),getdate()+12.3) value   
247. O:直接用两个日期相减(比如d1-d2=12.3)   
248. SELECT (d1-d2)*24*60*60 vaule FROM DUAL;   
249. 44.根据差值求新的日期(比如分钟)   
250. S:select dateadd(mi,8,getdate()) value   
251. O:SELECT sysdate+8/60/24 vaule FROM DUAL;   
252. 45.求不同时区时间   
253. S:不知道   
254. O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;