对于数据操作的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