新鲜发布:
| 元字符 | 说明 |
|---|---|
| ^ | 匹配字符串的开始位置 |
| $ | 匹配字符串的结束位置 |
| . | 匹配任意单个字符(换行符 \n 除外) |
| | | 交替 |
| {…} | 指定要限定的数量 |
| [...] | 指定要匹配的字符集 |
| (…) | 对表达式进行逻辑分组 |
| * | 匹配零或多个前面的表达式 |
| + | 匹配一或多个前面的表达式 |
| ? | 匹配零或一个前面的表达式 |
| \ | 放在上面任何一个字符之前,表示匹配该字符本身。放在其他特殊字符后面,表示字符转义(见下面) |
常有时候遇到需要删除SQL Server中的重复记录,这里有一些常用的删除重复记录的SQL,收藏备用,转自(loveyuki.com),感谢。
最常用的 T-SQL 语句:
DELETE FROM [dbo].[myTable] WHERE 主键 NOT IN (SELECT MAX(主键) FROM [dbo].[myTable] GROUP BY 列1, 列2, 列3)
从 SQL Server 2005 以后,用 CTE:
WITH tmpOrderdTable AS ( SELECT GroupID = ROW_NUMBER() OVER (PARTITION BY 列1, 列2, 列3 ORDER BY 主键) FROM [dbo].[myTable] ) DELETE FROM tmpOrderdTable WHERE GroupID > 1
比如有文章表 Article(Id,Category,InsertDate),现在要用SQL找出每种类型中时间最新的前N个数据组成的集合,一段不错的代码,留存备用,转自(loveyuki.com),感谢。
SELECT A1.* FROM Article AS A1 INNER JOIN (SELECT A.Category,A.InsertDate FROM Article AS A LEFT JOIN Article AS B ON A.Category = B.Category AND A.InsertDate <= B.InsertDate GROUP BY A.Category,A.InsertDate HAVING COUNT(B.InsertDate) <= @N ) AS B1 ON A1.Category = B1.Category AND A1.InsertDate = B1.InsertDate ORDER BY A1.Category,A1.InsertDate DESC
@N 就是你要取多少条。
