询问一个SQL如何实现判断查询的问题

这是我现在的语句
strSql2.Append("SELECT a.SystemContractID, a.Income, a.TotalMargin, a.UserCode,a.StrategyID, b.StrategyName FROM OrderProfit_History as a INNER JOIN Strategy as b ON a.StrategyID = b.StrategyID");
OrderProfit_History表中和Strategy 表中都有StrategyID,但是只有Strategy 表中的
StrategyID 有对应的StrategyName,并且OrderProfit_History表中有Strategy 表所没有的StrategyID。现在的语句执行结果是,返回OrderProfit_History表中所有的StrategyID 在Strategy 表中存在的数据,并显示对应的StrategyName。
我下面想实现的是,显示OrderProfit_History表中所有的数据,如果StrategyID 在Strategy 表中存在,就显示StrategyName ,反之,则没有对应的StrategyName ,那就
在StrategyName 项中用StrategyID 替代吧。
表达的应该清楚了吧,本人对SQL不是很懂,不知道我说的这个逻辑能不能用一条SQL语句实现?

0

1个回答

1、以OrderPofit_History表为主表,进行做关联。
2、在select语句中用case when 子句判断StrategyName是否为空,非空显示StrategyName,为空显示StrategyId填充。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MySQL基础总结(sqlyog中询问语句)
MySQL的常见命令 1、查看当前所有的数据库      show databases; 2、打开指定的数据库      use 库名 3、查看当前库的所有表      show tables; 4、查看其他库的所有表      show tables from 库名; 5、创建表      creat table 表名{            列名 列类型,       ...
mysql怎么判断查询数据慢的sql语句
如何查找MySQL中查询慢的SQL语句 更多 如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启动时,mysqld 会写一个包含所有执行时间超过long_query_time 秒的SQL语句的日志文件,通过查看这个日志文件定位效率较低的SQL
询问一个查询sql的问题
我有一个aa字段,比如该字段数据为:rn10,12,14,rn这样的数据rn现在想查14在这里是否出现,如何查到?
RMQ(区间最值查询问题)
知识点系列之---RMQ(主要讲ST表)
sql语句实现一个输入框下多条件查询
select oh.*,s.StatusName,st.Status,ps.StatusName AS PayStatusName from orderheader oh  LEFT JOIN orderdetail od on od.OrderID=oh.OrderID  LEFT JOIN customer c on oh.CustomerID = c.CustomerID LEFT J
SQL慢查询分析,原因及优化
问题描述 一个用户反映线上一个SQL语句执行时间慢得无法接受。SQL语句看上去很简单(本文描述中修改了表名和字段名): SELECT count(*) FROM a JOIN b ON a.`S` = b.`S` WHERE a.`L` > '2014-03-30 00:55:00' AND a.`L` < '2014-03-30 01:00:00' ; 且查询需要的字段都建了索引
莫队算法(离线处理区间问题)
莫队算法,就是巧妙处理区间问题的一种算法。 举个例子来讲一下 问题:有n个数组成一个序列,有m个形如询问L, R的询问,每次询问需要回答区间内至少出现2次的数有哪些。 一、暴力法 m次询问,每次询问循环n次,时间复杂度O(m*n) 二、巧妙点的 我们可以通过前面区间来解决后面区间的问题 比如已知[1,10],那么[1,11]就只需要再访问一次即可,而暴力却必须11次。 设置一个L,...
hdu 6287 口算训练(二分+质因数分解+思维)
口算训练 Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others) Total Submission(s): 1968    Accepted Submission(s): 423   Problem Description 小Q非常喜欢数学,但是他的口算能力非常弱。因此他找到了...
用SQL进行地铁线路换乘查询
这代码是当初做课程作业时写出来的,过了几个月了现在看了看发现还挺不错的,说不定现在还写不出来了呢·~·。语法较为基础,都是简单的关键字,但是逻辑嵌套比较复杂,也用了大量的in,所以效率上可能不那么给列,不知道用来查公交速度如何~~~ SQL我写在了Java里,方便传参和二次换乘衔接,代码如下 package xiaolengzi; import java.sql.Connection; ...
sql经典问题-查询连续的时间
今天遇到一个问题,需要查询用户连续下单的月份 这个跟查询用户连续登陆的天数一样 都是查询连续的时间或者数字 这样的查询在oracle中需要用到ROW_NUMBER() OVER(partition by 分组的列 order by 排序的列)函数 举例如下: 今天是5号 表A 用户 登陆的日期   用户在表中用userid字段表示 日期date a            5
SQL 判断一个表或临时表是否存在
1,在数据库中创建的每个用户定义的架构范围内的对象,均可以在系统表sys.objects中查找 select * from sys.objects where name='table_name/Object_Name' 注:Object_name可以是表明,过程名,触发器名,视图名等 对于DDL触发器不在架构范围内(DDL 触发器是针对数据库和服务器级别的触发器),可以使用sys.trigg...
SQL SERVER中判断某个字段是否包含大写字母
SQL SERVER中判断某个字段是否包含大写字母   sql语句中默认是不区分大小写的,所以语句:  www.2cto.com   Sql代码   SELECT * FROM RecEngineBizInfo WHERE RecEngineBizName = 'QQ'    和 Sql代码   SELECT * FROM RecEngineBizI
Oracle sql判断一个字段是否全数字 或含有中文
update (select length(t.name), t.* -- name,length(name) from g_enterprise_info t where nvl2(translate(name, '\1234567890 ', '\'), 'is characters ',
JavaScript 调用c#方法(删除操作询问是否删除)详解
之前看过一些文章,但是始终不得其门而入,因为需要调用layer层,但是调用layer层以后他会直接先return 完再执行询问,结果是。。。很尴尬。点击打开链接其它大神们所写的方法;后来又找了一些。找到个浏览器的询问方法:感觉丑的1b;但是却十分简单,没有特殊癖好的话可以选择这样使用; &amp;lt;asp:LinkButton ID=&quot;btnDelete&quot; Text=&quot;删除&quot; OnClientClic...
在论坛中出现的比较难的sql问题:7(子查询 判断某个字段的值是否连续)
最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了。 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路。 1、数据查询,行转列的问题。 http://bbs.csdn.net/topics/390621630?page=1#post-395855019 根
sql字段值包含某一特定值判断(FIND_IN_SET)
用法: B是否包含A,写法是: SELECT relevancyServiceLine FROM djoy_module WHERE FIND_IN_SET(A,B)
(ORACLE)sql判断一个字段是否全数字 或含有中文及统计某个字段中中文的个数
一、判断一个字段是否全数字 或含有中文update (select length(t.name), t.* -- name,length(name) from g_enterprise_info t where nvl2(translate(name, '\1234567890 ', '\'), 'is ch...
公园导游图代码(数据结构)
用c语言编写的公园导游图系统代码,解决数据结构中公园导游图问题
一个sql查询慢的问题的解决
一个sql语句用了8个like '%xx%', 查询时间要5秒多,起初以为是like多的原因, 用Explain运行下,发现用到了file sort。 经仔细检查,发现是用到了子查询的原因。 本来打算用sphinx,阿里云的开放搜索什么的, 一个大牛说,数据不到1000万条都不用搜索引擎, 把子查询转到left join里面就好了。 ...
写一条sql判断一条记录是否属于一个区间(起点-终点)
遇到这么一个小问题,根据录入的起点数值和终点数值到数据库查看录入的这个区间在数据库中是不是存在,这个问题其实就是一个逻辑判断,但是当时一下子没像清楚。画个图看一下就明白了。下面我用图表示下: 其中红色表示数据库中的值,黑色表示输入的值,下面“起点”用qd表示,“终点”用zd表示,输起用“sq”表示,“输终”用sz表示。 首先第一种情况他的sql我们经常写,qd=zd 第二种情况那其实
怎么用sql语句查看某个字段值是否是唯一的
select count(*) from table group by zd having count(*)&amp;gt;1 这是不唯一的过滤出来的语句
sql判断一个字段中是否包含另一个字符串
select  *  from 表名 where CHARINDEX('要查询的字符串',字段名)&amp;gt;0 若表中存在(学习,学习中) 我们只需要查询出‘学习’的数据,则使用CHARINDEX(',学习,',',' + 字段名 + ',')&amp;gt;0查询即可...
SQL SERVER 用户名、密码登入判断
1、创建users表:CREATE TABLE users ( id INT PRIMARY KEY not null IDENTITY, name VARCHAR(22), pwd VARCHAR(33) )2、插入几条数据:INSERT INTO users VALUES('a','aaaaa'),('b','bbbbb'),('c','ccccc');3、创建存储过程:CREATE PROCE
造成性能问题的SQL语句——死锁问题
一、分别构建两个事务,并让这两个事务冲突——死锁产生 在窗口1中执行delete语句,但是不要commit 在开一个窗口,构建第二个事务: 此时,这个update语句一直在等待 二、登陆数据库查看是否有死锁产生: 执行如下查询语句: SELECT l.session_id sid,      s.serial#,      l.locked_mode 锁模式,      l...
SQL中的条件判断语句(case when zhen)用法
简介: case具有两种格式。简单case函数和case搜索函数。这两种方式,可以实现相同的功能。简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式。还有一个需要注重的问题,case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略。 --简单case函数 case sex   when '1' then '男'   wh
检测数据库时间是否冲突
需求:对一天的时间进行分段,比如: 8:00~10:00, 10:00~12:00, 12:00~14:00, …… 现在要插入一个时间段,检查该时间段是否与已经存在的时间段冲突(即有没有交集) 假设数据库存在一条数据: 新增一条数据,开始时间:s,结束时间为:e. 首先画图分析,可能会冲突的情况,假设黑线9:00~11:00为数据库中的数据,共有7种可能 第一种: s...
使用SQL语句查询经纬度之间的距离和一定范围内的数据
declare @a decimal(18,7) --经度 declare @b decimal(18,7) --维度 set @a=119.921001 set @b=35.943285 declare @c decimal(18,7) set @c=6371 --地球半径 select *,sqrt( ( ((@a-longitude)*PI()*@c*cos((
SqlServer怎么查询数据是否存在
现象: 在数据库新增的时候,有时需要判断此条数据是否已经存在,防止插入 重复的数据。有时是根据条件查询list判断list是否有值、有时是根据条件返回查询的条数进行判断。 方法:这里是有exists函数进行判断 一:exists函数的使用 1:使用exists判断不存时的情况 2:使用exists判断结果存在时的情况 以上是exists函数的使用但是只是对结果进行了输出 没有进...
sql语句判断两个时间段是否有交集
场景:  数据库有有两个字段.开始时间,和结束时间,指定一个时间段(a,b),a表示开始时间,b表示结束时间。看数据库中有没有与(a,b)冲突的时间段,有的话就返回那条记录。 解析:两个时间段相当于两个集合,不过是有顺序的集合。两个时间段有交集细分有四种情况。用sql直接判断无交集的语句可能也有,但是目前没有想到,只想到有交集的语句,如果返回不为空则表明有交集,否则没有交集。 s
PL/SQL 循环 if判断
declare i varchar2(10) := '张三'; begin dbms_output.put_line(i); end; declare i emp.sal%type; begin select sal into i from emp where empno = 7369; dbms_output.put_line(i); end; d...
sql查询出表中所有列名 判断两个表中的列是否相同?
sql查询出表中所有列名 判断两个表中的列是否相同?2008-06-12 10:02declare @objid int,@objname char(40)set @objname = 表aselect @objid = id from sysobjects where id = object_id(@objname)select Column_name = nam
sql判断字符串相似度
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER FUNCTION [dbo].[F_strcompare](@str1 VARCHAR(8000), @str2 VARCHAR(8000)) RETURNS VARCHAR(10) AS
主席树-查询区间有多少个不同的数
#include<iostream> #include<cstdio> #include<algorithm> #include<map> #include<cstring> using namespace std; const int MAXN=3e4+5; const int M=MAXN*100; int n,q,tot; int a[MAXN]; int T[MAXN],lson[M],rs
数据库数字字段查看是否是小数
1、SQLServer数据库 select * from @tb where d&amp;lt;&amp;gt;round(d,0) 2、oracle数据库 SELECT C_NUM,CASE WHEN C_NUM - TRUNC(C_NUM) = 0 THEN '整数'ELSE '非整数' END FROM (SELECT 3.000 C_NUM FROM DUALUNION ALL SELECT 3.1...
SQL查询语句,怎样查询重复大于等于小于多少的数据
select id, name, memo from A where id in (select id from A group by id having count(1) >= 2)
Sql 查询当天、本周、本月记录和日期操作、判断表和字段是否存在
Sql 查询当天、本周、本月记录 --查询当天:     select * from info where DateDiff(dd,datetime,getdate())=0 --查询24小时内的:     select * from info where DateDiff(hh,datetime,getDate())--info为表名,datetime为数据库中的字段值    --
hive判断周几进行SQL统计数据
网上查询资料如下: hive返回星期几的方法:pmod(datediff('#date#', '2012年任意一个星期日的日期'), 7) 。2012-01-01刚好是星期日,大家可以记忆为: 方法:pmod(datediff('#date#', '2012-01-01'), 7) 返回值:int 说明:1、返回值为“0-6”(“0-6”分别表示“星期日-星期六”);2、需要注意pmod...
sql查询字段中第一个和最后一个特殊字符之间的字段
select SUBSTRING(SCFJ,(charindex('_',SCFJ)+1),len(SCFJ)-(charindex('_',reverse(SCFJ))+1)-charindex('_',SCFJ)+1) from 表 SCFJ--要查询的字段
php如何判断SQL语句的查询结果是否为空?
如何判断sql语句查询的结果集是否为空! php //方法一 获取select结果集的行数 $rows=mysql_query("select * from `student` where `age`='16';"); if (mysql_num_rows($rows) ){ echo '查询无数据!'; } //方法二 返回上一次操作受影响的行数 $rows=mysql_query("s
sql如何查出某字段为空格或''但不是null的记录??还有 ‘ ’和'' 和 null 有什么区别吗??
2015-05-13 09:35 1 where 字段 = '' and 字段 is not null 查询出字段为空但不为null的,空其实字段里面是有空值的,而null是字段里并没有赋过任何值
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 如何实现云计算 云计算如何实现