【问题标题】:Concatenate and compare two columns with column from other table in SQL Server 2008?将两列与 SQL Server 2008 中其他表中的列连接并比较?
【发布时间】:2019-07-22 13:14:53
【问题描述】:

我得到了一个设计糟糕的数据库。格式如“1.03.3”的键被粘在表 T1 的描述中,类似于“1.03.3 计算机价格”。

我正在构建一个单独的表 T2,其中键“1.03.3”在描述“计算机价格”的列中分开。

我想构建一个查询,将 T1 中的适当值与 T2 中粘合的两个字段进行比较,例如:

T1.field1 = concat(T2.key + ' ' + T2.description)

如果找到匹配项,则将 T2 中的完整行插入另一个表 T3。

我不确定如何在 SQL Server 2008 的 TSQL 中执行此操作。 有人可以举一个比较两个粘合列与另一个表中的列的示例吗?

【问题讨论】:

    标签: sql tsql sql-server-2008


    【解决方案1】:

    使用concat()+ 是多余的,所以:

    T1.field1 =  (T2.key + ' ' + T2.description)
    

    concat() 在 SQL Server 2008 中仍然不可用。

    完整的查询类似于:

    select t2.*
    into t3
    from t2 join
         t1
         on t1.field1 =  (t1.key + ' ' + t2.description);
    

    如果t3 已经存在,请使用insert 而不是select into

    【讨论】:

    • 并将匹配插入到另一个表 T3 中?
    猜你喜欢
    • 2021-02-22
    • 1970-01-01
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-11
    • 1970-01-01
    • 2021-04-24
    相关资源
    最近更新 更多