简单实用的SQL脚本(行的行,表中的相同记录,等等)

简单实用的SQL脚本(行的行,表中的相同记录,等等)
行和列
复制代码代码如下所示:
创建测试表(ID int,NAME varchar(20),季度int,int型)
插入测试值(1,A,11000)
插入测试值(1,A,22000)
插入测试值(1,A,34000)
插入测试值(1,A,45000)
插入测试值(2,B,13000)
插入测试值(2,B,23500)
插入测试值(2,B,34200)
插入测试值(2,B,45500)
从测试中选择*
一行行
选择ID、名称,
{ 1 }作为第一季度
{ 2 }作为两个季度
{ 3 }作为三季度
{ 4 }作为四个季节
{ 5 }为5

测试
枢轴

总和(配置文件
对于季度
({ 1 },{ 2 },{ 3 },{ 4 },{ 5 })

当PVT

创建表test2(ID int,NAME varchar(20),Q1 Q2 int,int,Q3)
插入一个值(1,A,1000200040005000)
Insert into test2 values (2,'b', 3000350042005500)
SELECT * FROM test2

选择ID、名称、区域、配置文件

test2
逆透视

简况
对于季度
({第一节},第二节,第三节,第四节,第四节)

作为unpvt
SQL替换子字符串替换
复制代码代码如下所示:
-示例1:
更新tbpersonalinfo设置字符真名字=取代(TrueName,子串(计算机中的DOS命令,4),其中编号为1的荡妇)
-示例2:
更新tbpersonalinfo设置移动=取代(移动、子串(移动,******** 4,11),' '),ID = 1
-示例3:
更新tbpersonalinfo设置电子邮件=取代(电子邮件,'chinamobile ',' ****** '),ID = 1

SQL查询表中相同的记录。
如果可以区分id,可以用这种方式编写
复制代码代码如下所示:
从ID所在的表中选择*
通过id(1)> 1选择表组中的id)

如果有几个ID可以区分,可以用这种方式写。
复制代码代码如下所示:
SELECT * FROM表在ID1 + ID2 + ID3
(选择ID1 + 2 + ID3表组的ID1,ID2,ID3算法具有总和(1)> 1))))

其他答案:数据表zy_bho,努力找到了ZYH字段名称相同的记录
复制代码代码如下所示:
-方法1:
SELECT * FROM zy_bho哪里存在
(选择1 zy_bho,{ } { }的PK PK和ZYH <> = a.zyh)
-方法2:
选择A * zy_bho加入zy_bho B
在(A. { PK } <> B. { }和PK a.zyh = b.zyh)
-方法3:
SELECT * FROM zy_bbo ZYH在哪里
(选择ZYH从zy_bbo组ZYH有计数(ZYH)> 1)
其中PK是主键或唯一字段。

将多行SQL数据成多列数据,即新列
复制代码代码如下所示:
选择
部门名称= o.ouname,
9g ' =总和(时personalgrade = 9 1其他0端),
8g ' =总和(时personalgrade = 8 1其他0端),
7g4 ' =总和(时personalgrade = 7 = 4 jobgrade 1其他0端),
7G3=和(在personalgrade = 7 = 3 jobgrade 1其他0端),
6g ' =总和(时personalgrade = 6 1其他0端),
5g3 ' =总和(时personalgrade = 5 = 3 jobgrade 1其他0端),
' ' =总和(、5G2时personalgrade = 5 = 2 jobgrade 1其他0端),
4G=总和(时personalgrade = 4 1其他0端),
3C=总和(时personalgrade = 3 = 2 jobgrade 1其他0端),
3G1'=总和(时personalgrade = 3 = 1 jobgrade 1其他0端),
的2G =总和(时personalgrade = 2 1其他0端),
1G =总和(时personalgrade = 1 1其他0端),
没有人(在personalgrade =零然后=和1其他0端)

表复印件
复制代码代码如下所示:
插入phonechange_num({在},努姆)
选择{在}
计数({ }为num IMEI)
从{测试}。{ } { } dbo。phonechange组民DESC IMSI },{

语法1:插入表格(field1,field2,…)值(value1,value2,…)
语法2:插入表(field1,field2,选择value1,value2…),…从表1(要求目标表表必须存在,因为目标表的表已经存在,所以我们可以将定为除源表字段。
语法3:选择vale1,value2为表从表1,这要求目标表表不存在,因为表表时自动创建的插入,和指定的字段数据表复制到表。
语法4:为完整的表复制使用导入和导出函数。如果您使用{编写一个查询来指定要传输的数据},那么复制一个大数据表会出现问题。因为复制不再在一定程度上移动,内存会爆炸吗它还没有被写入到表中,上面3个语法的用法立即刷新到数据库表中,您可以刷新MDF文件。

与相关子查询语句更新数据
复制代码代码如下所示:
-方法1:
更新表1集C =(选择C从表2凡=表一),
-方法2:
更新
集newqiantity = b.qiantity
来自A,B
在a.bnum = b.bnum
-方法3:
更新
(选择A.bnum、A.newqiantity、b.qiantity从加入B a.bnum = b.bnum左)为
集c.newqiantity = c.qiantity
在c.bnum = XX
连接远程服务
复制代码代码如下所示:
-方法1:
SELECT * FROM OPENROWSET('sqloledb ','server = 192.168.0.67;UID = SA;pwd=密码,'select * bcm2。dbo。tbappl)
-方法2:
SELECT * FROM OPENROWSET('sqloledb ','192.168.0.67;'sa;'password ','select * bcm2。dbo。tbappl)
截断表{表名}
下面是一个描述的TRUNCATE语句的用法和原理在MSSQLserver2000:
截断是SQL中的一条语句,它删除数据表的内容。用法是:
截断表表的名称是快速而有效的,因为:
截断表的功能与删除语句相同,没有WHERE子句:两个都删除表中的所有行。但是截断表比删除快,使用较少的系统和事务日志资源。
DELETE语句删除行的每一次记录一项对于每一行,是在交易log.truncate表删除删除数据将用于存储表数据的数据页,并记录该页面只有在事务日志中的释放。
TRUNCATE TABLE删除表中的所有行,但表结构和其列,约束,索引,等等都是一样的。用于新的线路标识的数值重置为该列的种子。如果你想要保持标识符值,使用删除。如果你想删除表的定义和数据,使用DROP TABLE语句。
对于外键约束引用的表,不能使用截断表,也应该使用一个没有WHERE子句的删除语句。因为截断表没有记录在日志中,所以不能激活触发器。
截断表不能用于参与索引视图的表。

参考
数据库表行列、列转换最终方案

行列(动态脚本

选择并插入到选择中的两个表副本

非常有用的SQL脚本

作者:听风雨
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部