有些数据完全一样,要清除掉重复的,只保留一条不重复的数据:
DELETE FROM S_Users
WHERE (AI NOT IN
(SELECT MAX(AI)
FROM S_Users))
查数据库所有表名称
SELECT *
FROM information_schema.tables
SELECT name
FROM sysobjects
WHERE (xtype = 'u') AND (NOT (name LIKE 'dtproperties'))
替换数据库某段数据
用另一个字符串值替换出现的所有指定字符串值。
用第三个表达式替换第一个表达式中出现的所有第二个表达式
语法
REPLACE ( string_expression , string_pattern , string_replacement )
参数
- string_expression
-
要搜索的字符串表达式。string_expression 可以是字符或二进制数据类型。
- string_pattern
-
是要查找的子字符串。string_pattern 可以是字符或二进制数据类型。string_pattern 不能是空字符串 ('')。
string_replacement
-
替换字符串。string_replacement 可以是字符或二进制数据类型。
返回类型
如果其中的一个输入参数数据类型为 nvarchar,则返回 nvarchar;否则 REPLACE 返回 varchar。
如果任何一个参数为 NULL,则返回 NULL。
注释
REPLACE 根据输入的排序规则执行比较操作。若要以指定的排序规则执行比较操作,可以使用 COLLATE,显示指定输入的排序规则。
update 表A set 电话号码 = replace( replace(电话号码,'17951',''),'12593','')
where 电话号码 like '17951%' or 电话号码 like '12593%'
获取时间差
SELECT DATEDIFF([day]
, (SELECT 出生日期 FROM A WHERE (姓名 = '11'))
, GETDATE()) AS DiffDate
字符串截取
declare @c varchar(500)
select @c='123|456|789|012|345'
select substring(@c,1,charindex('|',@c)-1)
union
select substring(stuff(@c,1,charindex('|',@c),''),1,charindex('|',@c)-1)
union
select substring(stuff(stuff(@c,1,charindex('|',@c),''),1,charindex('|',@c),''),1,charindex('|',@c)-1)
union
select substring(stuff(stuff(stuff(@c,1,charindex('|',@c),''),1,charindex('|',@c),''),1,charindex('|',@c),''),1,charindex('|',@c)-1)
union
select substring(stuff(stuff(stuff(stuff(@c,1,charindex('|',@c),''),1,charindex('|',@c),''),1,charindex('|',@c),''),1,charindex('|',@c),''),1,charindex('|',@c)-1)