加入 table 和与其他列相似的列,同时更改列值 SQL
join table and where column similar to other column, while changing column value SQL
我的代码有问题。这是一个 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
包装当前代码。 SQL 抛出错误 - 语法不正确。我有一个包含 3 个组件的 ELSE IF 块。
要根据其当前值修改值,您应该查看 CASE 语句。
例如:
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 '
WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under 0'
WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under 00'
ELSE 'Over 00'
END
FROM Production.Product
ORDER BY ProductNumber ;
GO
我的代码有问题。这是一个 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
包装当前代码。 SQL 抛出错误 - 语法不正确。我有一个包含 3 个组件的 ELSE IF 块。
要根据其当前值修改值,您应该查看 CASE 语句。
例如:
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 '
WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under 0'
WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under 00'
ELSE 'Over 00'
END
FROM Production.Product
ORDER BY ProductNumber ;
GO