SQL

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.

原文地址:https://www.cnblogs.com/qijiage/p/3216560.html