==================================經常使用函數===========================================
字符串函數
1)ISNULL(EXP1,EXP2,EXP3,...) :返回第一個非空值,用法與COALESCE(exp1,exp2[,exp3...])相同
3)TRIM(exp) :去除兩邊空格
4)DATEFORMAT(date_exp,date_format) :日期型轉字符型;
5)STRING(exp):轉爲字符型;
6)SUBSTRING(exp,int-exp1,[int-exp2]):截取exp從int-exp1開始,截取int-exp2個字符;
7)REPLACE(o-exp,search-exp,replace-exp):從o-exp搜索search-exp,替換爲replace-exp;
8)SPACE(int_exp):返回int個空格;
8)UPPER(exp):轉爲大寫字母,等價於UCASE(exp);
8)LOWER(exp):轉爲小寫字母,
8)CHARINDEX(exp1,exp2):返回exp2字符串中exp1的位置!定位,exp1 查找的字符,exp2 被查找的字符串;
8)DATALENGTH(CHAR_EXPR):在char_expr中返回字符的長度值,忽略尾空;
8)RIGHT(char_expr,int_expr):返回char_expr右邊的int_expr個字符;
8)LEFT(char_expr,int_expr):返回char_expr左邊的int_expr個字符;
8)REPLICATE(char_expr,int_expr):重複char_expr,int_expr次;
8)STUFF(expr1,start,length,expr2):用expr2代替epxr1中start起始長爲length的字符串;
8)REVERSE(char_expr):反寫char_expr中的文本;
8)LTRIM(char_expr):刪除頭空;
8)RTRIM(char_expr):刪除尾空;
8)STR(float_expr[,length[,decimal]]):進行數值型到字符型轉換;
8)PATINDEX("%pattern%",expression):返回指定樣式的開始位置,不然爲0;
8)NULLIF(exp1,exp1):比較兩個表達式,若是相等則返回null值,不然返回exp1
8)NUMBER(*):返回序號,至關於ORACLE的rowid,但有區別;
其餘函數
8)RANK() OVER(PARTITION BY .. ORDER BY ..) 分組分析函數,相同的ORDER BY值,返回順序值同樣,且PARTITION BY 只支持一個字段或一個字段組(需多個字段分組的則要用 || 拼爲一個字段(待確認))
8)返回可讀的 全局ID UUIDTOSTR(NEWID())
8)COL_LENGTH(tab_name,col_name):返回定義的列長度;兼容性:IQ&ASE
8)LENGTH(exp):返回exp的長度;兼容性:IQ
轉換函數
8)CONVERT(datetype,exp[,format-style]):字符轉日期型 或DATE(exp);兼容性:IQ&ASE
format-style值 輸出:
112 yyyymmdd
120 yyyy-mm-dd hh:nn:ss
SELECT CONVERT(date,'20101231',112),CONVERT(varchar(10),getdate(),120) ;
--結果
2010-12-31 2011-04-07
8)CAST(exp AS data-type):返回轉換爲提供的數據類型的表達式的值; express
(1.SELECT CAST(ID AS INTEGER) FROM A; SELECT CAST(ID AS DECIMAL(18,X)) FROM A --X指小數位)函數
日期函數
8)DAY(date_exp):返回日期天值,DAYS(date_exp,int):返回日期date_exp加int後的日期;MONTH與MONTHS、YEAR與YEARS同理;
8)DATE(exp):將表達式轉換爲日期,並刪除任何小時、分鐘或秒;兼容性:IQ
8)DATEPART(date-part,date-exp): 返回日期份量的對應值(整數);
8)GETDATE():返回系統時間;
8)DATENAME(datepart,date_expr):以字符串形式返回date_expr指定部分的值,轉換成合適的名字;
8)DATEDIFF(datepart,date_expr1,date_expr2):返回date_expr2-date_expr1,經過指定的datepart度量;
8)DATEADD(date-part,num-exp,date-exp):返回按指定date-part份量加num-exp值後生成的date-exp值;兼容性:IQ&ASE
date-part日期份量表明值:
縮寫 值
YY 0001-9999
QQ 1-4
MM 1-12
WK 1-54
DD 1-31
DY 1--366
DW 1-7(週日-週六)
HH 0-23
MI 0-59
SS 0-59
MS 0-999
數值函數
8)CEIL(num-exp):返回大於或等於指定表達式的最小整數;兼容性:IQ&ASE;
8)FLOOR(numeric_expr):返回小於或等於指定值的最大整數;
8)ABS(num-exp):返回數值表達式的絕對值;兼容性:IQ&ASE;
8)TRUNCNUM(1231.1251,2):截取數值;不四捨五入;
8)ROUND(numeric_expr,int_expr):把數值表達式圓整到int_expr指定的精度;
8)RAND([int_expr]):返回0-1之間的隨機浮點數,可指定基值;
8)SIGN(int_expr):返回正+1,零0或負-1;
8)SQRT(float_expr):返回指定值的平方根;
8)PI():返回常數3.1415926;
8)POWER(numeric_expr,power):返回numeric_expr的值給power的冪;
8)EXP(float_expr):給出指定值的指數值;
==================================經常使用DDL語句===========================================
Sybase中DDL語句不能修改字段的數據類型,只能修改空與非空:
1.刪除列:
ALTER TABLE table_name DELETE column_name;
2.增長列:
ALTER TABLE table_name ADD (column_name DATA_TYPE [NOT] NULL);
3.修改列的空與非空:
ALTER TABLE table_name MODIFY column_name [NOT] NULL;orm
修改列的字段類型:ALTER TABLE table_name MODIFY column_name 列屬性
4.修改列名:
ALTER TABLE table_name RENAME old_column_name TO new_column_name;
5.快速創建臨時表:
SELECT * INTO [#]table_name FROM .....;
六、修改表名:
ALTER TABLE old_table_name RENAME new_table_name
7.增長主鍵約束:
ALTER TABLE tb_name ADD CONSTRAINT pk_name PRIMARY KEY(col_name,..)
8.刪除主鍵約束:
ALTER TABLE tb_name DROP CONSTRAINT pk_name;
9.創建自增加字段,與Oracle的SEQUENCE相似:
CREATE TABLE TMP_001 (RES_ID INTEGER IDENTITY NOT NULL);
10.添加表註釋:
COMMENT ON TABLE table_name IS '....';
11.建立索引:
CREATE INDEX index_name ON table_name(column_name);索引
轉載:ci