
SQL
0
投票
2
已解决
2324
浏览
如何找一条船舶从开工到完工时间的时间段中75%进度的数据?
汪照坤(KhunOne) 回复了问题 • 2021-09-15 16:56
0
推荐
580
浏览
0
推荐
564
浏览
0
推荐
640
浏览
mysql的行号实现
select (@rowno := @rowno +1) as rownum , a.* from table a, (select @rowno :=0) b 1、@为自定义变量(@@为系统变量)2、:= 为赋值语句3、后半句代自定义一个变量rowno,并赋值为04、整句的意思为在原表的基础...
方枪枪 发表了文章 • 2021-04-18 11:08
0
推荐
685
浏览
0
推荐
701
浏览
LIMIT和 LIMIT OFFSET 的区别
1、LIMIT N,M从第N+1开始,取M个数如:LIMIT 5,2 表示:读取第6,7个数2、LIMIT N OFFSET M跳过前M个数,取之后的N个数如:LIMIT 5 OFFSET 1 表示:取第2-6条数据总结:LIMIT M,1 等价于 LIMIT...
方枪枪 发表了文章 • 2021-04-11 08:51
0
推荐
576
浏览
drop、truncate、delete区别
删除对象:drop会删除表数据和表结构,truncate删除表数据,delete+where删除指定行数据。应用范围:truncate仅应用于table,delete可应用于table和view,另外truncate也无法应用于参与了视图的表。是否记录事务...
方枪枪 发表了文章 • 2021-03-05 10:57
0
推荐
958
浏览
0
推荐
711
浏览
4
推荐
1314
浏览
面向集合的思维编写SQL(第九篇 --- “我说的是:苹果柿子李子栗子梨的那个橘子啊”)
max:屏幕前的同学,这个时候还在天善智能看博文,肯定是单身狗吧...猿同学:520是什么鬼,我的世界只有1024...大家好,距离上篇(面向集合的思想编写SQL的第八篇)已经过去N多个月了...一直想给大家呈现一个体系...
Max_Leo 发表了文章 • 2020-05-20 21:50
0
推荐
877
浏览
如何解决CSV打开乱码
原因:CSV是用UTF-8编码的,而EXCEL是ANSI编码,由于编码方式不一致导致出现乱码。解决办法:用记事本打开CSV文件----->文件------>另存为------>点编码------>选择ANSI----->保存,然后用excel打...
DDlucky 发表了文章 • 2020-05-14 10:55
0
推荐
695
浏览
左连接 ,右连接,内连接和全外连接的4者区别
做数据库开发或BI开发的经常会涉及到很多个表,那么各个表间的连接如何区分呢?总感觉这样的问题很简单,但是这些基本的问题在面试中经常会被问道,今天就总结一下这个问题,提醒自己和伙伴...
DDlucky 发表了文章 • 2020-04-16 16:27
0
推荐
758
浏览
2
推荐
1322
浏览
面向集合的思维编写SQL(8-行间数据比较)
早些时间写过一篇《Python与SQL对比实现:处理相邻记录的时间差》https://ask.hellobi.com/blog/Matthew112/15643面向的是工作中常见的一个业务场景:对基于时间顺序的业务数据集进行时间序列分析。现在我们有了...
Max_Leo 发表了文章 • 2020-02-11 12:09
0
推荐
1075
浏览
面向集合的思维编写SQL(7-量化万物的谓词-Exists)
1.什么是谓词何为SQL中的谓词,我们常见的比较(=,<,>)、between、like、in、is null、exist等都是谓词;我们可以将它看作一种特殊的函数,函数的返回值都是三值逻辑(true、false、unknow),用来判断“...
Max_Leo 发表了文章 • 2020-02-08 12:38
个人建议在提问之前先也动手写一下你自己认为正确的 SQL 代码或者你也进行过一些思考,哪怕有错都是可以的,大家都会帮助到你,简单的这种要 SQL 语句的方式不是非常可取。
个人建议在提问之前先也动手写一下你自己认为正确的 SQL 代码或者你也进行过一些思考,哪怕有错都是可以的,大家都会帮助到你,简单的这种要 SQL 语句的方式不是非常可取。
这个报错是内部错误。
换衣是两个服务器的配置不一致导致。建议报错的服务器重装cognos应用。
换衣是两个服务器的配置不一致导致。建议报错的服务器重装cognos应用。
这个报错是内部错误。
换衣是两个服务器的配置不一致导致。建议报错的服务器重装cognos应用。
换衣是两个服务器的配置不一致导致。建议报错的服务器重装cognos应用。
按照你的描述
-----
表NAMETABLE里面有2万条符合“NUM = 2”的记录。但是如果NAMETABLE里的记录减少到300条的话就可以查询出数据。或者把A.NUM = 2去掉也可以得出数据。
-----
初步猜测是NUM字段是有索引的,但是... 显示全部 »
-----
表NAMETABLE里面有2万条符合“NUM = 2”的记录。但是如果NAMETABLE里的记录减少到300条的话就可以查询出数据。或者把A.NUM = 2去掉也可以得出数据。
-----
初步猜测是NUM字段是有索引的,但是... 显示全部 »
按照你的描述
-----
表NAMETABLE里面有2万条符合“NUM = 2”的记录。但是如果NAMETABLE里的记录减少到300条的话就可以查询出数据。或者把A.NUM = 2去掉也可以得出数据。
-----
初步猜测是NUM字段是有索引的,但是由于错误的统计信息导致索引评估失败,尝试加上下面这个hint再执行试试,如果不行建议你把执行计划发出来。
select /*+ full(A)*/
H.RENO, B.NAME, H.RBNO, H.ENO, A.NAME, H.BNO
from HTABLE H
join NAMETABLE A
on (A.NUM = 2 and H.ENO = A.ENO and H.RENO <> A.ENO)
join NAMETABLE B
ON (H.RENO = B.ENO)
ORDER BY H.RENO, H.RBNO
-----
表NAMETABLE里面有2万条符合“NUM = 2”的记录。但是如果NAMETABLE里的记录减少到300条的话就可以查询出数据。或者把A.NUM = 2去掉也可以得出数据。
-----
初步猜测是NUM字段是有索引的,但是由于错误的统计信息导致索引评估失败,尝试加上下面这个hint再执行试试,如果不行建议你把执行计划发出来。
select /*+ full(A)*/
H.RENO, B.NAME, H.RBNO, H.ENO, A.NAME, H.BNO
from HTABLE H
join NAMETABLE A
on (A.NUM = 2 and H.ENO = A.ENO and H.RENO <> A.ENO)
join NAMETABLE B
ON (H.RENO = B.ENO)
ORDER BY H.RENO, H.RBNO
blevel = 索引高度 - 根节点
所以当你的索引blevel = 1的时候就说明有一个根节点和一个叶子节点
其实分支节点和叶子节点没有一定要有哪一个,原理上是一样的,只不过叶子节点下没有其他分支,所以称为叶子节点。当有其他分支时称为分支节点。
就... 显示全部 »
所以当你的索引blevel = 1的时候就说明有一个根节点和一个叶子节点
其实分支节点和叶子节点没有一定要有哪一个,原理上是一样的,只不过叶子节点下没有其他分支,所以称为叶子节点。当有其他分支时称为分支节点。
就... 显示全部 »
blevel = 索引高度 - 根节点
所以当你的索引blevel = 1的时候就说明有一个根节点和一个叶子节点
其实分支节点和叶子节点没有一定要有哪一个,原理上是一样的,只不过叶子节点下没有其他分支,所以称为叶子节点。当有其他分支时称为分支节点。
就像当你有儿子了你就是爸爸了,没儿子的时候你是你爸爸的儿子。
所以当你的索引blevel = 1的时候就说明有一个根节点和一个叶子节点
其实分支节点和叶子节点没有一定要有哪一个,原理上是一样的,只不过叶子节点下没有其他分支,所以称为叶子节点。当有其他分支时称为分支节点。
就像当你有儿子了你就是爸爸了,没儿子的时候你是你爸爸的儿子。
with tmp as
(
select 21 as num1,201503 as ym, 1 as sort
union all
select 3 as num1,201509 as ym, 1 as sort
union all
select ... 显示全部 »
(
select 21 as num1,201503 as ym, 1 as sort
union all
select 3 as num1,201509 as ym, 1 as sort
union all
select ... 显示全部 »
with tmp as
(
select 21 as num1,201503 as ym, 1 as sort
union all
select 3 as num1,201509 as ym, 1 as sort
union all
select 6 as num1,201510 as ym, 1 as sort
union all
select 7 as num1,201403 as ym, 2 as sort
union all
select 21 as num1,201405 as ym, 2 as sort
union all
select 2 as num1,201409 as ym, 2 as sort
union all
select 4 as num1,201410 as ym, 2 as sort
)
select t1.ym,t1.num1,t2.num1, cast((t1.num1 - t2.num1) * 1.0 / t2.num1 as decimal(18,2)) as rate
from tmp t1
left join tmp t2 on t1.ym = t2.ym + 100
(
select 21 as num1,201503 as ym, 1 as sort
union all
select 3 as num1,201509 as ym, 1 as sort
union all
select 6 as num1,201510 as ym, 1 as sort
union all
select 7 as num1,201403 as ym, 2 as sort
union all
select 21 as num1,201405 as ym, 2 as sort
union all
select 2 as num1,201409 as ym, 2 as sort
union all
select 4 as num1,201410 as ym, 2 as sort
)
select t1.ym,t1.num1,t2.num1, cast((t1.num1 - t2.num1) * 1.0 / t2.num1 as decimal(18,2)) as rate
from tmp t1
left join tmp t2 on t1.ym = t2.ym + 100
1.MSSQL2008及以上版本:
在CTE里面使用ROW_NUMBER() OVER()函数构建一个排序字段,然后直接BETWEEN AND即可。
2.创建临时表,设置一个自增字段,导入结果集,然后使用BETWEEN AND即可。
3.还有嵌套TOP查询,这... 显示全部 »
在CTE里面使用ROW_NUMBER() OVER()函数构建一个排序字段,然后直接BETWEEN AND即可。
2.创建临时表,设置一个自增字段,导入结果集,然后使用BETWEEN AND即可。
3.还有嵌套TOP查询,这... 显示全部 »
1.MSSQL2008及以上版本:
在CTE里面使用ROW_NUMBER() OVER()函数构建一个排序字段,然后直接BETWEEN AND即可。
2.创建临时表,设置一个自增字段,导入结果集,然后使用BETWEEN AND即可。
3.还有嵌套TOP查询,这个效率不高,不推荐。
在CTE里面使用ROW_NUMBER() OVER()函数构建一个排序字段,然后直接BETWEEN AND即可。
2.创建临时表,设置一个自增字段,导入结果集,然后使用BETWEEN AND即可。
3.还有嵌套TOP查询,这个效率不高,不推荐。
[code]create table dbo.#t1
(
col varchar(50)
);
insert into dbo.#t1
(
col
)
values ('10'),('10_20'),('1010'),('101012');
selec... 显示全部 »
(
col varchar(50)
);
insert into dbo.#t1
(
col
)
values ('10'),('10_20'),('1010'),('101012');
selec... 显示全部 »
[code]create table dbo.#t1
(
col varchar(50)
);
insert into dbo.#t1
(
col
)
values ('10'),('10_20'),('1010'),('101012');
select *
from dbo.#t1 with(nolock);
select *
from dbo.#t1 with(nolock)
where patindex('%[^0-9]'+'10'+' %',','+col+',')>0
结果:
col
10
10_20
思路是这样的,按照你的要求,10边上不应该有其他数字,那么只要[^0-9]就是非数字,为了判断,人为在字段前后加了逗号。
(
col varchar(50)
);
insert into dbo.#t1
(
col
)
values ('10'),('10_20'),('1010'),('101012');
select *
from dbo.#t1 with(nolock);
select *
from dbo.#t1 with(nolock)
where patindex('%[^0-9]'+'10'+' %',','+col+',')>0
结果:
col
10
10_20
思路是这样的,按照你的要求,10边上不应该有其他数字,那么只要[^0-9]就是非数字,为了判断,人为在字段前后加了逗号。
感谢大家的帮忙啊。
SELECT tt.zyh,
MAX(DECODE(rn,1,dm,NULL)) dm,
MAX(DECODE(rn,2,dm,NULL)) dm1
FROM
(SELECT t.*,
row_number() OVER(PARTITIO... 显示全部 »
SELECT tt.zyh,
MAX(DECODE(rn,1,dm,NULL)) dm,
MAX(DECODE(rn,2,dm,NULL)) dm1
FROM
(SELECT t.*,
row_number() OVER(PARTITIO... 显示全部 »
感谢大家的帮忙啊。
SELECT tt.zyh,
MAX(DECODE(rn,1,dm,NULL)) dm,
MAX(DECODE(rn,2,dm,NULL)) dm1
FROM
(SELECT t.*,
row_number() OVER(PARTITION BY zyh ORDER BY zyh) rn
FROM t) tt
GROUP BY tt.zyh;
SELECT tt.zyh,
MAX(DECODE(rn,1,dm,NULL)) dm,
MAX(DECODE(rn,2,dm,NULL)) dm1
FROM
(SELECT t.*,
row_number() OVER(PARTITION BY zyh ORDER BY zyh) rn
FROM t) tt
GROUP BY tt.zyh;
你确认下,你复制代码的时候,下面语言栏,选的是否是 EN (英语(英国)) 。如果是的话,在复制代码之前将其换成中文(简体)
14055
14055
你确认下,你复制代码的时候,下面语言栏,选的是否是 EN (英语(英国)) 。如果是的话,在复制代码之前将其换成中文(简体)
14055
14055
WITH tmp AS
(
SELECT COUNT(Name) OVER(PARTITION BY Name ORDER BY Name) tn,*
FROM StudentInfo
)
SELECT * FROM tmp WHERE tn > 4 ... 显示全部 »
(
SELECT COUNT(Name) OVER(PARTITION BY Name ORDER BY Name) tn,*
FROM StudentInfo
)
SELECT * FROM tmp WHERE tn > 4 ... 显示全部 »
WITH tmp AS
(
SELECT COUNT(Name) OVER(PARTITION BY Name ORDER BY Name) tn,*
FROM StudentInfo
)
SELECT * FROM tmp WHERE tn > 4 利用Over函数还是很容易实现的
(
SELECT COUNT(Name) OVER(PARTITION BY Name ORDER BY Name) tn,*
FROM StudentInfo
)
SELECT * FROM tmp WHERE tn > 4 利用Over函数还是很容易实现的
[code]
SELECT ID, Name = REPLACE(STUFF(
(SELECT ' '+Name
FROM [dbo].[a] AS a2
WHERE a2.ID = a.ID
ORDER BY ID
FOR XML PATH('')
)
,1,1,''),' ','')
FROM [dbo]. AS a
GROUP BY ID
ORDER BY ID; 最简单的办法是再加个Replace函数
SELECT ID, Name = REPLACE(STUFF(
(SELECT ' '+Name
FROM [dbo].[a] AS a2
WHERE a2.ID = a.ID
ORDER BY ID
FOR XML PATH('')
)
,1,1,''),' ','')
FROM [dbo]. AS a
GROUP BY ID
ORDER BY ID; 最简单的办法是再加个Replace函数
join on 不可以使用case when 不过你可以变向来做
比如
on (t1.type = 1 and t1.id = t2.pid) or (t1.type = 2 and t1.pid = t2.ppid and t1.name = t2.na... 显示全部 »
比如
on (t1.type = 1 and t1.id = t2.pid) or (t1.type = 2 and t1.pid = t2.ppid and t1.name = t2.na... 显示全部 »
join on 不可以使用case when 不过你可以变向来做
比如
on (t1.type = 1 and t1.id = t2.pid) or (t1.type = 2 and t1.pid = t2.ppid and t1.name = t2.name) 但是这样做SQL的执行效率太差了。
比如
on (t1.type = 1 and t1.id = t2.pid) or (t1.type = 2 and t1.pid = t2.ppid and t1.name = t2.name) 但是这样做SQL的执行效率太差了。
规划求解是啥意思。。。 我不太懂。。 百度了下 没看明白 能举个栗子不
规划求解是啥意思。。。 我不太懂。。 百度了下 没看明白 能举个栗子不
这个不复杂吧,就是处理下结束 时间而已 结束时间等于 开始时间 + 分钟(结束时间-开始时间)*0.75
这个不复杂吧,就是处理下结束 时间而已 结束时间等于 开始时间 + 分钟(结束时间-开始时间)*0.75
0
投票
2
已解决
2324
浏览
如何找一条船舶从开工到完工时间的时间段中75%进度的数据?
汪照坤(KhunOne) 回复了问题 • 2021-09-15 16:56
0
投票
0
回答
1224
浏览
请教一个问题:向数据库发送一段SQL没有问题,但如果将部分参数以替换的形式写入发布的命令会导致中文字符乱码。这是什么情况呢?
mythcd 发起了问题 • 2017-12-08 10:07
0
投票
0
回答
1575
浏览
请问有没有哪位同学安装过SQL Server 2016的R open和R Server?不知道为什么已经指定了安装目录,但激活不了“下一步”
niggling 发起了问题 • 2017-08-08 09:00
0
投票
1
回答
1232
浏览
大家好 小弟请教个问题 删除sql server中的数据库对象的时候 比如表存储过程函数啥的 一版都会记录到日志文件中 有没有办法让数据库删除的时候 不保留日志啊 最好是在语句上实现那种
悟 回复了问题 • 2017-07-25 08:20
0
投票
0
回答
1062
浏览
请问一下sql中where的用法,只能应用于table嘛?谢谢
ludeng 发起了问题 • 2017-05-08 09:41
0
投票
1
回答
1710
浏览
如何评价sql
qjxiaopang 回复了问题 • 2017-03-02 22:41
0
投票
0
回答
1248
浏览
有没有可以把多张小表都放入内存的方法? MAPJOIN 只知道单表的使用
Jmarry 发起了问题 • 2017-01-06 09:16
0
投票
1
已解决
1821
浏览
SQL能否实现如同EXCEL中规划求解的功能?又该如何实现呢?能否请大神指导一下怎么做。
老头子 回复了问题 • 2016-11-04 11:17
0
投票
1
已解决
1473
浏览
有没有Sql大神 我想问一下join on table的条件里可以Case when吗,不同的条件时on一个,或者两个
悟 回复了问题 • 2016-09-26 11:31
0
投票
2
已解决
1393
浏览
SQL 面试题 XML PATH
wenti 回复了问题 • 2016-05-26 10:09
0
投票
3
回答
1465
浏览
请教个问题,一条sql :insert ..select 加提示append ,程序调不生效,Pl/sql dev调生效,请问遇到过吗
GeorgeYao 回复了问题 • 2016-05-03 15:12
0
投票
3
已解决
1942
浏览
小白,第一提问,求助SQL如何实现,谢谢
悟 回复了问题 • 2016-04-08 10:34
0
投票
2
已解决
1785
浏览
datastage. 里面的sql中有中文,黏贴到ue里是乱码 请问大家怎么解决
一小颗树 回复了问题 • 2016-03-22 17:36
0
投票
1
回答
1392
浏览
Sqlserver08到12 ,数据库复制错误
郑大鹏 回复了问题 • 2016-03-07 13:45
0
投票
5
已解决
2951
浏览
怎么把ID相同的数据合并成一行了 着急啊,求大神
haibin1999 回复了问题 • 2015-12-15 11:12
0
推荐
580
浏览
0
推荐
564
浏览
0
推荐
640
浏览
mysql的行号实现
select (@rowno := @rowno +1) as rownum , a.* from table a, (select @rowno :=0) b 1、@为自定义变量(@@为系统变量)2、:= 为赋值语句3、后半句代自定义一个变量rowno,并赋值为04、整句的意思为在原表的基础...
方枪枪 发表了文章 • 2021-04-18 11:08
0
推荐
685
浏览
0
推荐
701
浏览
LIMIT和 LIMIT OFFSET 的区别
1、LIMIT N,M从第N+1开始,取M个数如:LIMIT 5,2 表示:读取第6,7个数2、LIMIT N OFFSET M跳过前M个数,取之后的N个数如:LIMIT 5 OFFSET 1 表示:取第2-6条数据总结:LIMIT M,1 等价于 LIMIT...
方枪枪 发表了文章 • 2021-04-11 08:51
0
推荐
576
浏览
drop、truncate、delete区别
删除对象:drop会删除表数据和表结构,truncate删除表数据,delete+where删除指定行数据。应用范围:truncate仅应用于table,delete可应用于table和view,另外truncate也无法应用于参与了视图的表。是否记录事务...
方枪枪 发表了文章 • 2021-03-05 10:57
0
推荐
958
浏览
0
推荐
711
浏览
4
推荐
1314
浏览
面向集合的思维编写SQL(第九篇 --- “我说的是:苹果柿子李子栗子梨的那个橘子啊”)
max:屏幕前的同学,这个时候还在天善智能看博文,肯定是单身狗吧...猿同学:520是什么鬼,我的世界只有1024...大家好,距离上篇(面向集合的思想编写SQL的第八篇)已经过去N多个月了...一直想给大家呈现一个体系...
Max_Leo 发表了文章 • 2020-05-20 21:50
0
推荐
877
浏览
如何解决CSV打开乱码
原因:CSV是用UTF-8编码的,而EXCEL是ANSI编码,由于编码方式不一致导致出现乱码。解决办法:用记事本打开CSV文件----->文件------>另存为------>点编码------>选择ANSI----->保存,然后用excel打...
DDlucky 发表了文章 • 2020-05-14 10:55
0
推荐
695
浏览
左连接 ,右连接,内连接和全外连接的4者区别
做数据库开发或BI开发的经常会涉及到很多个表,那么各个表间的连接如何区分呢?总感觉这样的问题很简单,但是这些基本的问题在面试中经常会被问道,今天就总结一下这个问题,提醒自己和伙伴...
DDlucky 发表了文章 • 2020-04-16 16:27
0
推荐
758
浏览
2
推荐
1322
浏览
面向集合的思维编写SQL(8-行间数据比较)
早些时间写过一篇《Python与SQL对比实现:处理相邻记录的时间差》https://ask.hellobi.com/blog/Matthew112/15643面向的是工作中常见的一个业务场景:对基于时间顺序的业务数据集进行时间序列分析。现在我们有了...
Max_Leo 发表了文章 • 2020-02-11 12:09
0
推荐
1075
浏览
面向集合的思维编写SQL(7-量化万物的谓词-Exists)
1.什么是谓词何为SQL中的谓词,我们常见的比较(=,<,>)、between、like、in、is null、exist等都是谓词;我们可以将它看作一种特殊的函数,函数的返回值都是三值逻辑(true、false、unknow),用来判断“...
Max_Leo 发表了文章 • 2020-02-08 12:38
2
推荐
1626
浏览
面向集合的思维编写SQL(1-手动实现开窗函数)
第一部分:初试集合思维1.场景与需求我们有如下的一列价格数据,现在有这样一个需求,对其实现RANK()排序:2.SQL实现:我先展示代码:查询结果如下:3.SQL解读:现在返回头看代码,括号中的SQL是计算rank排名的核...
Max_Leo 发表了文章 • 2020-02-01 11:19