SQL Server部分函数及语法总结

2018-11-04  本文已影响12人  _小沫

将最近使用的一些函数及语法,做个总结:

字符串函数
类型转换函数

CASE语法

  1. CASE WHEN exp1 THEN result1 WHEN exp2 THEN result2 ELSE result3 END
  2. CASE exp WHEN value1 THEN result1 WHEN value2 THEN result2 ELSE result3 END
操作符IN EXISES
分页语法
复制表数据到另一个表
  1. INSERT INTO SELECT语句:将表的数据插入到目标表,要求目标表是存在的。
    在举栗子前,先创建测试数据:
DECLARE @TableA TABLE(
            A VARCHAR(10),
            B VARCHAR(10),
            C VARCHAR(10)
            )
DECLARE @TableB TABLE(
            B VARCHAR(10),
            C VARCHAR(10),
            D VARCHAR(10)
            )
INSERT INTO @TableA VALUES('a1','b1','c1')
INSERT INTO @TableA VALUES('a2','b2','c2')
INSERT INTO @TableA VALUES('a3','b3','c3')

栗子:

INSERT INTO @TableB(B,C) SELECT TA.A,TA.B FROM @TableA TA
SELECT * FROM @TableB

结果:


bc
INSERT INTO @TableB SELECT TA.A,TA.B,'d1' FROM @TableA TA
INSERT INTO @TableB SELECT * FROM @TableA
  1. SELECT INTO FROM语句:和INSERT INTO SELECT功能一样但比INSERT INTO SELECT语句性能高,要求目标表是不存在的,执行该语句会创建目标表。批量转移数据至一个新表时,可以先用SELECT INTO,然后创建相关的索引,键,约束等。
    栗子:
SELECT A,B INTO TableC FROM @TableA
SELECT * INTO TableC FROM @TableA
SELECT * INTO TABLEC FROM @TableA A WHERE A.A='a1'
  1. UPDATE SET FROM语句:批量更新目标表。
    测试数据:
DECLARE @TableD TABLE(
            D VARCHAR(10),
            E VARCHAR(10),
            F VARCHAR(10)
            )
INSERT INTO @TableD VALUES('a1','e1','f1')
INSERT INTO @TableD VALUES('d2','e2','f2')
INSERT INTO @TableD VALUES('d3','e3','f3')

栗子:

UPDATE @TableD SET D=TA.A,E=TA.B,F=TA.C FROM @TableA TA,@TableD TD WHERE TD.D=TA.A

结果:


update
上一篇 下一篇

猜你喜欢

热点阅读