对于数据操作的SQL语句精粹(长期更新)

--删除空格
 Update [Table] Set [Column]=Replace([Column],' ','') 

--查出左右和右边带空格的数据
select RTRIM( LTRIM([Column])) from Table

--查出有空格的数据
select * from [Table] where [Column] like '%_ _%'

--将带有换行符和回车符的数据删除掉
Update [Table] Set [Column ]= replace(replace([Column],char(13),''),char(10),'')

--在指定的字段里的数据前面加上固定的数据(update亦如此)
(sql)select 'data'+Column from Table

(oracle)select 'data'||Columnfrom Table

--给查询出来的数据添加一列唯一标识的序列ID(两种方法,很明显,第二个的数据开销更小一点)

--IDENTITY(int,1,1)第一个'1'是从1开始,第二个'1'是每列增加1,。各位可以根据自己的需求拓展。

SELECT ROWID=IDENTITY(int,1,1) , columna, columnb, columnc INTO Tableb FROM Tablea ORDER BY columna

 SELECT ROW_NUMBER() OVER (ORDER BY columnaASC) AS ROWID, * FROM Tablea 

PS:如果之前的表里有唯一标识,就会提示 无法使用 SELECT INTO 语句向表 'Tableb ' 中添加标识列,该表中已有继承了标识属性的列 'XX'

--那么可以这样写(第一个是去掉,第二个是转换)

select id=IDENTITY(int,1,1),replyId*1 as replyId into Tableb from Tablea 

select id=IDENTITY(int,1,1),convert(int,replyId) as replyId into Tableb from Tablea 

 

--声明表变量且进行操作

Declare @user Table
(
ID INT,
NAME NVARCHAR(15)
)

Insert INTO @user(ID,NAME)VALUES
(1,'2'),
(2,'3')
Insert INTO @user(ID,NAME)SELECT 1,'2' UNION SELECT 2,'3'

Select ID,NAME FROM @user

 

--sql 查询某个数据库中某一字段在哪个表里
select name,OBJECT_NAME(id) as tablename from syscolumns where name='column'

 

--递归 其中columna字段为cloumnb的父节点。

WITH NODES 
AS ( 
SELECT * FROM TABLEA par 
UNION ALL 
SELECT child.* FROM TABLEA AS child INNER JOIN 
NODES AS RC ON child.columna = RC.columnb) 

SELECT * FROM NODES

 

--很好用的分页sql 

select [column1] ,[column2] ... ,[columnN] from [tableName] order by [columnM] offset (pageIndex-1)*pageSize rows fetch next pageSize rows only
原文地址:https://www.cnblogs.com/qingyanxiaochen/p/9531925.html