例1:
01000000 ,01010000 , 01010200 ---->01, 0101, 010102(去掉最后一个非零数字后面的零)
方法:
FROM 表名;
需掌握:PATINDEX,REVERSE
1.patindex基本语法:PATINDEX ( '%pattern%' ,expression)
参数说明
pattern:字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个和最后一个字符时除外)。pattern 是短字符数据类型类别的表达式
expression:表达式,通常为要在其中搜索指定模式的列,expression 为字符串数据类型类别
2.REVERSE 函数 返回字符串str的字符颠倒顺序例2:
查询数据中拥有存在数个数
方法:
SELECT R AS 存在数,COUNT(1) AS 拥有此存在数个数
FROM ( SELECT 字段 ,
COUNT(*) R
FROM 表名
WHERE Name='需要查找的值'
GROUP BY 字段
) inv
GROUP BY R;
例3:
怎么查询出来只保留 “-”号后面的数据
需掌握:RIGHT,CHARINDEX
基本语法如下:
CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )
expressionToFind :目标字符串,就是想要找到的字符串,最大长度为8000 。
expressionToSearch :用于被查找的字符串。
start_location:开始查找的位置,为空时默认从第一位开始查找。
例4:
一个表中相同value值后的多行字符串数据进行拼接,采用逗号分隔>>>
方法:
SELECT [具相同值的字段],
STUFF(( SELECT ','+ [需要拼接的字段]
FROM dbo.tableName
WHERE dbo.tableName .[具相同值的字段]=B.[具相同值的字段]
FOR XML PATH('')),1,1,'')AS SumData
FROM dbo.tableName AS B
GROUP BY [具相同值的字段(即需要查询的字段)]
需掌握:STUFF,FOR XML PATH
-----------------------------更新分割线:2018-07-05----------------------------------------------------------------------------