sqlserver针对不同数据类型,如何等值连接查询

sqlserver中在查询过滤的时辰,经常会碰着,以字符串的日期值去过滤日期类型的列,或者,分歧数字类型的等值过滤,好比int、decimal、money、float等等数字类型匹配。他们的等值毗连查询需要怎么做呢?

方式/步调

  1. 1

    建立一个姑且表,用于演示sqlserver语法中的等值毗连查询

    IF OBJECT_ID('tempdb..#tmp1') IS NOT NULL DROP TABLE #tmp1; 

    CREATE TABLE #tmp1(

        Col1 varchar(50),        

        Col2 varchar(200),

        Col3 int,

        Col4 datetime        

    );

  2. 2

    建立别的一个姑且表,用于演示sqlserver语法中的等值毗连查询

    IF OBJECT_ID('tempdb..#tmp2') IS NOT NULL DROP TABLE #tmp2; 

    CREATE TABLE #tmp2(

        Col1 varchar(50),      

        Col2 varchar(200),

        Col3 decimal(18, 4),

        Col4 varchar(50)      

    );

  3. 3

    往姑且表中插入几行测试数据,此中某些数组在两个表固然数据类型分歧,可是插入不异的值

    insert into #tmp1(Col1, Col2, Col3, Col4) values('Code1', '第1行', 1, '2019-04-25');

    insert into #tmp1(Col1, Col2, Col3, Col4) values('Code10', '第2行', 10, '2019-04-26');

    insert into #tmp1(Col1, Col2, Col3, Col4) values('Code100', '第3行', 100, '2019-04-27');

    insert into #tmp2(Col1, Col2, Col3, Col4) values('Code1', NULL, 1, '2019-04-25');

    insert into #tmp2(Col1, Col2, Col3, Col4) values('Code10', '第2行', 10, '2019-04-26');

    insert into #tmp2(Col1, Col2, Col3, Col4) values('Code100', '第N行', 100, '2019-04-30');

  4. 4

    查询姑且表中的测试数据

    select * from #tmp1;

    select * from #tmp2;

  5. 5

    利用INNER JOIN联系关系两张表,查询Col2字符串列值相等的成果

    select * 

    from #tmp1 a

    inner join #tmp2 b on b.Col1 = a.Col1

    where a.Col2 = b.Col2

  6. 6

    利用INNER JOIN联系关系两张表,查询int类型的数字和decimal类型数字相等的成果,sqlserver会主动进行数据类型转换匹配

    select * 

    from #tmp1 a

    inner join #tmp2 b on b.Col1 = a.Col1

    where a.Col3 = b.Col3

  7. 7

    利用INNER JOIN联系关系两张表,查询detatime类型的日期与字符串类型日期相等的成果,sqlserver会主动进行数据类型转换匹配

    select * 

    from #tmp1 a

    inner join #tmp2 b on b.Col1 = a.Col1

    where a.Col4 = b.Col4

  • 发表于 2019-04-25 23:03
  • 阅读 ( 762 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

联系我们:uytrv@hotmail.com 问答工具