来自 数据库 2019-11-06 10:09 的文章
当前位置: 网上澳门金莎娱乐 > 数据库 > 正文

patindex的用法.txt

网上澳门金莎娱乐,1.CTE

with as类似于临时表,子查询,但它整句只相当于一句sql语句,复合查询时很好用

网上澳门金莎娱乐 1网上澳门金莎娱乐 2

1 with cr as
2 (select * from a)
3 select * from cr

CTE

返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。

2.PATINDEX  

返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。
基本语法:PATINDEX ( '%pattern%' , expression )
pattern:字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个和最后一个字符时除外)。pattern 是短字符数据类型类别的表达式
expression:表达式,通常为要在其中搜索指定模式的列,expression 为字符串数据类型类别

网上澳门金莎娱乐 3网上澳门金莎娱乐 4

1 patindex('%[^0-9|\.]%',name)  --获取第一个非数字和点的字符的位置

PATINDEX

 Transact-SQL 语法约定

 3.PARTITION BY

PARTITION BY是分组,GROUP BY 是分组聚合

网上澳门金莎娱乐 5网上澳门金莎娱乐 6

 1 NAME SCORE
 2 A      13
 3 B      34
 4 A      56
 5 B      68
 6 C       4
 7 SELECT NAME,ROW_NUMBER() OVER(PARTITION BY NAME ORDER BY SCORE) rownum FROM dbo.USERS
 8 NAME rownum
 9 A        1
10 A        2
11 B        1
12 B        2
13 C        1

PARTITION BY

语法
 
PATINDEX ( '%pattern%' , expression )  

 4.rowcount与@@rowcount

rowcount限定之后语句影响的行数,与top差不多,但top影响的行数不能用变量,rowcount可以;@@rowcount返回上一句sql影响的数据行数。

网上澳门金莎娱乐 7网上澳门金莎娱乐 8

1 set rowcount 10
2 select * from 表A--返回10条数据
3 
4 select  * from 表A
5 select @@Rowcount --返回表A的行数

View Code

 

备注
如果 pattern 或 expression 为 NULL,则当数据库的兼容级别为 70 时,PATINDEX 将返回 NULL;如果数据库兼容级别小于或等于 65,则仅当 pattern 和 expression 同时为 NULL 时,PATINDEX 才返回 NULL。

5.删除除了自动编号不同, 其他都相同的学生冗余信息

delete tablename where  ID  not in(select min( ID) from tablename group by学号, 姓名, 课程编号, 课程名称, 分数)

 

PATINDEX 基于输入的排序规则执行比较。若要以指定排序规则进行比较,则可以使用 COLLATE 将显式排序规则应用于输入值。

6.复制(备份)表(只复制结构,源表名:a  新表名:b) 

select * into b from a where 1<>1   (where1=1,拷贝表结构和数据内容)

 

参数
pattern
一个文字字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个或最后一个字符时除外)。pattern 是字符串数据类型类别的表达式。

expression
一个表达式,通常为要在其中搜索指定模式的列,expression 为字符串数据类型类别。

本文由网上澳门金莎娱乐发布于数据库,转载请注明出处:patindex的用法.txt

关键词: