SQL Server数据库-实用语句、查询、修改

根据列名查找出表名(通用)

SELECT TABLE_NAME from INFORMATION_SCHEMA.COLUMNS where COLUMN_NAME = '列名'

查询重复数据

select * from [表A] where 有重复数据的列名 in (select 列名 from [表A] group by 列名 having count(列名) >1 )

根据一个字段名去查哪些表里有这个字段

SELECT * FROM sysobjects s

WHERE TYPE='u'

AND id IN(

SELECT id FROM syscolumns s

WHERE s.[name]='字段名')

根据某一个字段重复只取第一条数据

select s.*

from(

select *,row_number() over (partition by 列名 order by 排序列名 ASC) as group_idx from 表名

)s where s.group_idx = 1

批量修改删除某个字段的最后两个值:SubString字符串截取函数

例如:

 select SUBSTRING('abcde',1,2) 返回结果 ab

 select SUBSTRING('abcde',2,3) 返回结果 bcd

 select SUBSTRING('abcde',1,0) 返回结果为空

字段值是否含有换行符

select * from 表名 where instr(字段名,chr(13))>0

表空间与剩余空间大小查询

SELECT DB_NAME() AS DbName,

name AS FileName,

size/128.0 AS CurrentSizeMB,

size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0 AS FreeSpaceMB

FROM sys.database_files;

查看当前连接数

SELECT * FROM 

[Master].[dbo].[SYSPROCESSES] WHERE [DBID] 

IN 

(

  SELECT 

   [DBID]

  FROM 

   [Master].[dbo].[SYSDATABASES] 

  WHERE 

   NAME='databaseName'

)

注:databaseName 是需要查看的数据库,然后查询出来的行数,就是当前的sql server数据库连接数。不过里面还有一些别的状态可以做参考用。

保留数值的后面两位小数-四舍五入

1.SELECT Round(列名,保留小数的位数) FROM 表名;

2.SELECT Convert(decimal(18,保留小数的位数), 列名) FROM 表名;

--整数部分若为0则会被省略。例如0.5521执行语句后为.55,解决方法见下面3语句

3.SELECT convert(varchar,convert(decimal(18,保留小数的位数),列名)) FROM 表名;

...

(未完待续。。。)

猜你喜欢

转载自blog.csdn.net/loa_loa/article/details/82382759