| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 513 人关注过本帖
标题:sql 查询:字符串比较。只有 19 分了,不成敬意。
只看楼主 加入收藏
wangf1978
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2013-11-11
结帖率:75%
收藏
已结贴  问题点数:19 回复次数:3 
sql 查询:字符串比较。只有 19 分了,不成敬意。
表1
id    da    df
1    AB     
2    AC     
3    B   
表2
id    ckda           fz
1    AB            5
2    ABC               5
3    ABCD         5
规则:表1中的da字段如果完全吻合则5分,部分吻合则得2分。
查询结果
id    da        df
1    AB        5
2    AC          2
3    B           2
搜索更多相关主题的帖子: 字符串 
2014-12-02 13:43
mxbing1984
Rank: 7Rank: 7Rank: 7
来 自:贵州道真
等 级:贵宾
威 望:37
帖 子:73
专家分:342
注 册:2014-8-8
收藏
得分:19 
create table 表1
 (
 id int,
 da varchar(10)
 )
 go

 insert into 表1 values(1,'AB')   
 insert into 表1 values(2,'AC')   
 insert into 表1 values(3, 'B')
 insert into 表1 values(4, 'BC')
 go
create table 表2
(
 id int,
 ckda varchar(10),
 fz  int
)
go                  
insert into 表2 values(1,'AB',5)            
insert into 表2 values(2,'ABC',5 )        
insert into 表2 values(3,'ABCD',5)      
insert into 表2 values(4,'AC',5)
go

Select *,Case
When Exists(Select '' From 表2 Where 表1.id=表2.id And 表1.da=表2.ckda) Then 5
When Exists
(
    Select '' From
    (
        Select SUBSTRING(da,number,1) as da From 表1 A Cross Join
        (
            Select number From master.dbo.spt_values
                Where type='P' And number Between 1 And 4
        ) B Where id=表1.id
    ) M  Where da<>'' And da Not In
    (
        Select SUBSTRING(ckda,number,1) as ckda From 表2 A Cross Join
        (
            Select number From master.dbo.spt_values
                Where type='P' And number Between 1 And 4
         ) B Where id=表1.id)
) Then 0 Else 2 End df
From 表1


图片附件: 游客没有浏览图片的权限,请 登录注册

 
第1题完全正确得5分
第2,3部分正确得2分
第4题包含错误答案得0分

你不是在百度问问采纳了么,害得我答案写好了,都没得回答

天再高,踮起脚尖就能更接近阳光
2014-12-06 15:45
volte
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:69
帖 子:1167
专家分:1316
注 册:2004-12-19
收藏
得分:0 
select a.id, a.da,
case when a.da=b.ckda then 5 when charindex(a.da, b.ckda)>0 then 2 else 0 end as df
from 表1 a left join 表2 b on a.id=b.id

大家都是朋友,有空就来坐坐!
2014-12-08 09:15
mxbing1984
Rank: 7Rank: 7Rank: 7
来 自:贵州道真
等 级:贵宾
威 望:37
帖 子:73
专家分:342
注 册:2014-8-8
收藏
得分:0 
回复 3 楼 volte
不能用charindex()啦,比如,我选择的答案是AC,标准答案是ABC,用charindex判断,就得0分,实际上该得2分

天再高,踮起脚尖就能更接近阳光
2014-12-08 12:26
快速回复:sql 查询:字符串比较。只有 19 分了,不成敬意。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.056206 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved