asp的SQL语句中and和or同时使用的注意事项

今天在调试程序的时候,需要用到and or,如果不掌握技巧输出的结构与我们想象的差距有点大,这里分享一下,希望大家以后多多支持我们

asp的SQL语句中and 和or是不是不可以同时使用呢?

答案是肯定的,下面来看下方法:

1、非常负责任的告诉你,是可以同时使用的。但要看业务要求

2、使用的场景举例:

查询表中2000年和2002年出生的男同学
select * from 学生表 where 性别='男' and (出生年份=2000 or 出生年份=2002)
3、其实or可以用SQL中的In来替代,这样书写会更方便

例如上面的举例用In来写:
select * from 学生表 where 性别='男' and 出生年份 In (2000,2002)

其实就是通过()来将需要注意的地方,扩一下

例如:我们后台搜索,需要判断当搜索的是js的时候,那么我们的编辑有些文章用的是javascript,那么就可以有些东西搜索不到,那么就可以参考这个方法了

核心代码:

select case lcase(keyarr(I))
         case "js"
         sqlk=sqlk&" and (title like '%"&keyarr(I)&"%' or title like '%javascript%')"
         case "javascript"
         sqlk=sqlk&" and (title like '%"&keyarr(I)&"%' or title like '%js%')"
         case "c#"
         sqlk=sqlk&" and (title like '%"&keyarr(I)&"%' or title like '%csharp%')"
         case "csharp"
         sqlk=sqlk&" and (title like '%"&keyarr(I)&"%' or title like '%c#%')"
		 case else
		 sqlk=sqlk&" and title like '%"&keyarr(I)&"%'"
end select
时间: 2015-11-29

sql语句中如何将datetime格式的日期转换为yy-mm-dd格式

如果在asp中我们可以用year(date())这样的格式在sql语句中,不知道这样的效率怎么样不过是个方法 复制代码 代码如下: select substring(convert(char,registdate,120),1,10) as registdate from tbuser

sql 语句中的 NULL值

今天写了这样的代码 复制代码 代码如下: DECLARE @atr NVARCHAR(20) SET @atr = NULL IF(@atr = NULL) BEGIN PRINT 1 END 原本是想打印出1的.但是没有. 把 代码修改成如下: DECLARE @atr NVARCHAR(20) SET @atr = NULL IF(@atr IS NULL) BEGIN PRINT 1 END 这样就正确打印出1了. 然后自己有做了如下的修改,把if语句修改成 复制代码 代码如下: IF(N

SQL语句中含有乘号报错的处理办法

在ADO中,我们需要在SQL语句中使用乘法运算,可是添加'*'以后执行程序总是会出错,这是因为'*'与sql中的'*'关键字重合了,所以编译会出错. 解决办法:将乘法运算放到sql语句外面,将结果放入一个变量中,然后在sql语句中引用即可 int count = (this.AspNetPager1.CurrentPageIndex-1)*this.AspNetPager1.PageSize; string sql = " select top "+count+" E_Id

SQL语句中不同的连接JOIN及join的用法

为了从两个表中获取数据,我们有时会用JOIN将两个表连接起来.通常有以下几种连接方式: JOIN  or  INNER JOIN(内连接) : 这两个是相同的,要求两边表同时有对应的数据,返回行,任何一边缺失数据就不显示. LEFT JOIN(左外连接):即使右边的表中没有匹配,也从左表返回所有的行. RIGHT JOIN(右外连接):即使左边的表中没有匹配,也从右表返回所有的行. FULL JOIN(全外连接):只要其中一个表中存在匹配就返回行. 如例,有grade表(课程号sn,分数scro

python 在sql语句中使用%s,%d,%f说明

python连接数据库执行增删查改 mysql数据库 import pymysql postgresql数据库 import psycopg2 普通含%的python语句 sql语句中 普通sql语句 select * from tables where tablename = 'table_name' ,所以这里该加的引号还是要加 不加的情况 翻页的情况 like的情况 因为普通sql语句是 where 列名 like '4301%' 这里需要多加一个%防止转义 补充知识:python 中 s

SQL语句中公共字段的自动填充方法

1. 前言 我们在设计数据库的时候一定会带上新增.更新的时间.操作者等审计信息. 之所以带这些信息是因为假如有一天公司的数据库被人为删了,尽管可能有数据库备份可以恢复数据.但是我们仍然需要追踪到这个事是谁干的,在什么时间干的,具体干了哪些事等等,方便定责和修补.但是我们变更每条数据都要去显式变更这些信息就十分繁琐,我们希望无感知的来处理这些信息. 2. 通用方式 那么有什么好的解决思路呢?在Spring Data框架中提供@CreatedBy和@LastModifiedBy来捕捉谁创建或修改的实

解析sql语句中left_join、inner_join中的on与where的区别

table a(id, type):id     type ----------------------------------1      1         2      1          3      2          table b(id, class):id    class ---------------------------------1      12      2sql语句1:select a.*, b.* from a left join b on a.id = b

浅谈sql语句中GROUP BY 和 HAVING的使用方法

在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数, 例如SUM, COUNT, MAX, AVG等.这些函数和其它函数的根本区别就是它们一般作用在多条记录上. SELECT SUM(population) FROM bbc 这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有 国家的总人口数. having是分组(group by)后的筛选条件,分组后的数据组内再筛选 where则是在分组前筛选 通过

关于SQL语句中的AND和OR执行顺序遇到的问题

问题 昨天在写数据库SQL的时候遇到一个问题.问题的根结在SQL语句的AND和OR关键字的执行优先级问题.下面就针对这个问题进行一下测试. 场景 1.有一张学生表Student,表字段包括Id(用户主键).Name(用户名).Grade(年级).Class(班级).Sex(性别).如下: 表结构 2.在表中导入十条测试数据,如下: 表数据 3.现需要查询出性别为女的1年级女学生,或者性别为女的2班级女学生.SQL语句如下:     select * from student where sex=