SQL模糊查询
在进行数据库查询时,有完整查询和模糊查询之分。
一般模糊语句如下:
SELECT 字段 from 表 WHERE 某字段 Like 条件
其中关于条件,SQL提供了四种匹配模式:
1,%
:表示任意0个或多个字符。可匹配
任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示
。
比
如 SELECT * from [user] WHERE u_name LIKE '%三%'
将会把u_name为“张三”,“张猫
三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。
另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and
条件
SELECT * from [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'
若
使用 SELECT * from [user] WHERE u_name
LIKE '%三%猫%'
虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。
2,_
:
表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:
比如 SELECT * from [user]
WHERE u_name LIKE '_三_'
只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;
再比如
SELECT * from [user] WHERE u_name LIKE '三__';
只找出“三脚猫”这样name为三个字且第一个字
是“三”的;
3,[ ]
:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字
符串或范围,要求所匹配对象为它们中的任一个。
比如 SELECT * from [user] WHERE u_name LIKE
'[张李王]三'
将找出“张三”、“李三”、“王三”(而不是“张李王三”);
如 [ ]
内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”
SELECT * from [user] WHERE
u_name LIKE '老[1-9]'
将找出“老1”、“老2”、……、“老9”;
4,[^ ]
:
表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
比如 SELECT *
from [user] WHERE u_name LIKE '[^张李王]三'
将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等;
SELECT
* from [user] WHERE u_name LIKE '老[^1-4]';
将排除“老1”到“老4”
相关文档:
下载解压了Oracle SQL Developer工具,运行时,启动不了,报错信息如下:
---------------------------
Unable to create an instance of the Java Virtual Machine
Located at path:
<SQLDEVELOPER>\jdk\jre\bin\client\jvm.dll
---------------------------
是JVM参数设置的问题,我的解决方案如下:
<SQ ......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient; //引用命名空间
namespace DAL
{
/*******************************************************************************
&n ......
SQL Server 2008简体中文企业版下载:
thunder://QUFodHRwOi8vd3d3LnF1aWNrOC5jbi9kb3duLmFzcD9pZD0xMjM2JnNpZD0wWlo=
本DVD包含了x86 x64 ia64 三种CPU模式的安装程序。版本号为: 10.0.1600.22
序列号:
开发版(Developer): PTTFM-X467G-P7RH2-3Q6CG-4DMYB
企业版(Enterprise): JD8Y6-HQG69-P9H84-XDTPG-34MBB ......
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select peopleId from people group by peopleId having count
(peopleId) >& ......