连接表和where列,与其他列类似,同时更改列值SQL

连接表和where列,与其他列类似,同时更改列值SQL,sql,sql-server,tsql,left-join,Sql,Sql Server,Tsql,Left Join,我的代码有问题。这是一个SQL问题 我需要合并两张桌子。目前我有以下代码: SELECT calldate,clid, '44'+dst AS [NumberDialed],dstchannel,billsec,disposition,accountcode,uniqueid,cnam, callRateImport.Description, callRateImport.Code, callRateImport.Day FROM callLogImport LEFT JOIN cal

我的代码有问题。这是一个SQL问题

我需要合并两张桌子。目前我有以下代码:

SELECT calldate,clid, '44'+dst AS      [NumberDialed],dstchannel,billsec,disposition,accountcode,uniqueid,cnam, callRateImport.Description, callRateImport.Code, callRateImport.Day FROM callLogImport
LEFT JOIN callRateImport ON callLogImport.dst LIKE callRateImport.Code + '%'
WHERE
callRateImport.Code(Select Code FROM callRateImport WHERE callLogImport.dst LIKE Code + '%' AND Len(Code) = (SELECT MAX(Len(Code)) FROM callRateImport WHERE callLogImport.dst LIKE callRateImport.Code + '%') )
IF SUBSTRING (dst,1,2)=00

BEGIN

END
这很好。现在我需要根据原始结果将其与修改后的结果进行匹配

我有以下代码:

SELECT calldate,clid, '44'+dst AS      [NumberDialed],dstchannel,billsec,disposition,accountcode,uniqueid,cnam, callRateImport.Description, callRateImport.Code, callRateImport.Day FROM callLogImport
LEFT JOIN callRateImport ON callLogImport.dst LIKE callRateImport.Code + '%'
WHERE
callRateImport.Code(Select Code FROM callRateImport WHERE callLogImport.dst LIKE Code + '%' AND Len(Code) = (SELECT MAX(Len(Code)) FROM callRateImport WHERE callLogImport.dst LIKE callRateImport.Code + '%') )
IF SUBSTRING (dst,1,2)=00

BEGIN

END

包装当前代码。SQL正在抛出错误-语法不正确。我有一个由3个组件组成的ELSE-IF块。

要根据当前值修改值,您应该查看语句

例如:

USE AdventureWorks2012;
GO
SELECT   ProductNumber, Category =
    CASE ProductLine
       WHEN 'R' THEN 'Road'
       WHEN 'M' THEN 'Mountain'
       WHEN 'T' THEN 'Touring'
       WHEN 'S' THEN 'Other sale items'
       ELSE 'Not for sale'
    END,
 Name
FROM Production.Product
ORDER BY ProductNumber;
GO
或使用搜索的大小写表达式:

USE AdventureWorks2012;
GO
SELECT   ProductNumber, Name, "Price Range" = 
     CASE 
        WHEN ListPrice =  0 THEN 'Mfg item - not for resale'
        WHEN ListPrice < 50 THEN 'Under $50'
        WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250'
        WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000'
        ELSE 'Over $1000'
     END
FROM Production.Product
ORDER BY ProductNumber ;
GO
使用AdventureWorks2012;
去
选择产品编号、名称、“价格范围”=
案例
当ListPrice=0时,则“制造品-不转售”
当标价<50时,则“低于50美元”
当ListPrice>=50且ListPrice<250时,则“低于250美元”
当ListPrice>=250且ListPrice<1000时,则“低于1000美元”
否则“超过1000美元”
结束
从生产。产品
按产品编号订购;
去

要根据当前值修改值,您应该查看语句

例如:

USE AdventureWorks2012;
GO
SELECT   ProductNumber, Category =
    CASE ProductLine
       WHEN 'R' THEN 'Road'
       WHEN 'M' THEN 'Mountain'
       WHEN 'T' THEN 'Touring'
       WHEN 'S' THEN 'Other sale items'
       ELSE 'Not for sale'
    END,
 Name
FROM Production.Product
ORDER BY ProductNumber;
GO
或使用搜索的大小写表达式:

USE AdventureWorks2012;
GO
SELECT   ProductNumber, Name, "Price Range" = 
     CASE 
        WHEN ListPrice =  0 THEN 'Mfg item - not for resale'
        WHEN ListPrice < 50 THEN 'Under $50'
        WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250'
        WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000'
        ELSE 'Over $1000'
     END
FROM Production.Product
ORDER BY ProductNumber ;
GO
使用AdventureWorks2012;
去
选择产品编号、名称、“价格范围”=
案例
当ListPrice=0时,则“制造品-不转售”
当标价<50时,则“低于50美元”
当ListPrice>=50且ListPrice<250时,则“低于250美元”
当ListPrice>=250且ListPrice<1000时,则“低于1000美元”
否则“超过1000美元”
结束
从生产。产品
按产品编号订购;
去

不清楚你在问什么?使用预期的数据和结果进行解释。我需要更改数字,其中字符串以“0”开头,它需要与以44而不是0开头的数字匹配。我以前的代码仅连接到以0开头的数字。如何使if-ELSE循环工作?这是我目前的主要问题不清楚你在问什么?使用预期的数据和结果进行解释。我需要更改数字,其中字符串以“0”开头,它需要与以44而不是0开头的数字匹配。我以前的代码仅连接到以0开头的数字。如何使if-ELSE循环工作?这是我目前的主要问题不清楚你在问什么?使用预期的数据和结果进行解释。我需要更改数字,其中字符串以“0”开头,它需要与以44而不是0开头的数字匹配。我以前的代码仅连接到以0开头的数字。如何使if-ELSE循环工作?这是我的主要问题