1. 字符串类型要用单引号来表示,不要使用双引号;
2. Select子查询出来的数据集需要有一个名称,其实就是临时表的名称(例如:select * from (select * from ...) tempTable 等情况)。
3. Union all允许重复的结果集,Union会自动去重。Union结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名;
4. UNION内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同;
5. Union是将两个数据集合并起来,而join是连接两个表;
6. 在select* from ...Join... on... 操作的结果会把两个表中的列都展示出来;
7. case...when...then...else...end是一个整体,可以有多个else,但最起码要有一个else;
8. Exec <Store Procedure> 不能写在with...as..语句和select into <表> ...中;
9. CHARINDEX(expression1_toFind , expression2_Parent [ , start_location ]) 返回字符串中某个指定的子串出现的开始位置, 起始值是1,找不到时是0;
10. LEFT (<character_expression>, <integer_expression>)返回character_expression 左起 integer_expression 个字符;类似的,还有RIGHT方法,返回右起的指定数目字符;
//如果Userid为1,则返回0001 RIGHT('0000' + dbo.Userinfo.Userid, 4) AS User_ID
11. LEN 函数返回文本字段中值的长度;
12. SUBSTRING ( expression ,start , length );
13. 使用select into可以快速备份或新建一个table:
select * into NewTable from OldTable
14. 简单的CRUD操作:
//insert INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) //update UPDATE Person SET 列名称 = 新值, ... WHERE 列名称= 某值 //delete DELETE FROM 表名称 WHERE 列名称 = 值
15. 如何创建数据库(database)以及表(table):
//新建数据库 CREATE DATABASE 数据库名称
//新建数据表 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据类型, ....... )
16. 删除表中所有数据,以及删除表
TRUNCATE TABLE dbo.Customers_TEMP //删除表中所有数据,表及表结构依然存在 DROP TABLE dbo.Customers_TEMP //删除数据表
17. 使用一个表中的数据去更新另一个表:
Update T1 set T1.dc=T2.dc1 FROM T1,T2 WHERE T1.A=T2.A1
18. 一次更新表中多条数据:
UPDATE [Table_A] SET Column_B = CASE Column_A WHEN 'A1' THEN '11' WHEN 'A2' THEN '22' WHEN 'A3' THEN '33' WHEN 'A4' THEN '44' WHEN 'B1' THEN '55' WHEN 'B2' THEN '66' END WHERE Column_A IN ('A1','A2','A3','A4','B1','B2')
19. 将一个表中的数据插入到另一个表中去:
INSERT INTO MyTable (PriKey, Description) SELECT ForeignKey, Description FROM AnotherTable WHERE Condition
20.