sql拆分字段区分查询

select a.biaoti,a.laiyuan,b.* from sab_xwgg as a join yhgl as b on charindex(cast(b.dm as nvarchar(max))+‘;‘,a.dm)>0 where b.dm=‘1‘
加上全部为0时的显示
select a.*,b.xm from sab_xwgg as a join yhgl as b on (charindex(cast(b.dm as nvarchar(max))+‘;‘,a.dm)>0 or a.dm=‘0‘) INNER JOIN YHGL ON a.tjrid=YHGL.dm where b.dm=‘1‘

时间: 2024-11-09 05:14:26

sql拆分字段区分查询的相关文章

记一次SQL xml字段关联查询

需求: 一张表是APP表,结构如下: app_category为该游戏所属的类别ID,xml字段类型 另一张表是类别表,就ID对应名称,这就不上图了. 还有一张表是每个游戏的下载记录,结构如下: DownLogs_APPId为对应的游戏 那么需求来了,要查询游戏的下载记录,查询字段中要有游戏的所属类别名称,多个用逗号分隔 查询结果应如下: 最终的执行语句如下: select APP_Id,APP_Name,LEFT(App_Category,len(App_Category)-1) as App

拆分字段优化SQL

拆分字段优化SQL 今天看到一条用函数处理连接的SQL,是群里某位网友的,SQL语句如下: SELECT SO_Order.fdate , SO_Order.fsn FROM so_order INNER JOIN so_orderitem ON CHARINDEX(so_Orderitem.fid, SO_Order.fid) >= 1 WHERE so_order.FOrderDate = '2015-09-06' SELECT SO_Order.fdate , SO_Order.fsn F

SQL两表关联查询&批量修改字段值

SQL关联查询&修改字段,正确范例如下: --批量修改报告单位名称&更新时间 --tt和tp两表关联查询,将符合条件的tt表中的principal字段更新到tp表的ruperson字段 merge into nhis34.t_publicplaces tp using standard.t_organization tt on (tt.orgcode = tp.r_orgcode and tp.create_time > '2015-05-07 00:00:00') when mat

MySQL单表多字段模糊查询解决方法

在最近的一个项目需要实现在单表中对多字段进行多个关键字的模糊查询,但这数个关键字并不一定都存在于某个字段 例如现有table表,其中有title,tag,description三个字段,分别记录一条资料的标题,标签和介绍.然后根据用户输入的查询请求,将输入的字串通过空格分割为多个关键字,再在这三个字段中查询包含这些关键字的记录. 可目前遇到的问题是,这些关键字是可能存在于三个字段中的任意一个或者多个,但又要求三个字段必须包含所有的关键词.如果分别对每个字段进行模糊匹配,是没法实现所需的要求,由此

sql处理千万数据查询缓慢问题

给需要查询的字段增加全文索引 ALTER TABLE 表名 ADD FULLTEXT ( `字段`) 增加完全文索引后如下sql SELECT * FROM `表名` WHERE MATCH(加了索引字段) AGAINST ('查询内容' IN BOOLEAN MODE) 全文索引分三种模式: 一.自然语言查找.这是mysql默认的全文搜索方式 select id,title FROM post WHERE MATCH(content) AGAINST ('search keyword') 或者

sql多字段模糊查询优化

在实际开发中经常会遇到同一个关键字需要对多个字段模糊查询,比如一个用户表在输入关键字查询时可能要对用户名.用户姓名.联系电话等字段进行模糊查询 如果写成:where userName like '%关键字%' or fullName like '%关键字%' or mobile like '%关键字%'这种方式会导致性能非常低,几十万条数据可能就要很长世间才查询出来,为了解决这个问题,可以把这几个字段拼接起来然后再对拼接的字符串进行字符串搜索,这样性能将得到非常高的提升: 在sql server

Sql Like 通配符 模糊查询技巧及特殊字符

1. SQL like对时间查询的处理方法 SQL数据表中有savetime(smalldatetime类型)字段,表中有两条记录,savetime值为:2005-3-8 12:12:00和2005-6-6 14:02:02 我用下面语句什么也搜不出来 select * from soft where soft.savetime like'%2005-3-8%' SQL帮助中说: "当搜索 datetime 值时,推荐使用 LIKE,因为 datetime 项可能包含各种日期部分.例如,如果将值

SQL Server 基础 03 查询数据基础

查询数据 简单的查询 1 create table stu_info 2 ( 3 sno int not null 4 ,sname varchar(20) not null 5 ,sex varchar(2) not null 6 ,birth varchar(20) not null 7 ,email varchar(20) not null 8 ,telephone int not null 9 ,depart varchar(20) not null 10 ) 11 12 13 sele

SQL语句技巧:查询存在一个表而不在另一个表中的数据记录

原文:SQL语句技巧:查询存在一个表而不在另一个表中的数据记录 方法一(仅适用单个字段)使用 not in ,容易理解,效率低 select A.ID from A where A.ID not in (select ID from B) 方法二(适用多个字段匹配)使用 left join...on... , "B.ID isnull" 表示左连接之后在B.ID 字段为 null的记录 select A.ID from A left join B on A.ID=B.ID where