嗨,我有一个 Access 查询(如下),我试图在 SQL Server 中重新创建它:

UPDATE tblProducts SET tblProducts.ProductCode = [tblProducts].[ProductPrefix] &
Format([tblProducts].[ProductID],"00000")
WHERE (((tblProducts.ProductCode) Is Null Or (tblProducts.ProductCode) <>[tblProducts].[ProductPrefix] &
Format([tblProducts].[ProductID],"00000")));

我的 FORMAT 函数有问题。

最佳答案

对于 SQL Server 2012 及更高版本,您可以使用:

UPDATE tblProducts
SET ProductCode = [ProductPrefix] + Format([ProductID],'00000')
WHERE ProductCode IS NULL OR ProductCode != [ProductPrefix] + Format([ProductID],'00000');

STUFF ( SQL Server (starting with 2008) )的另一种方式:
UPDATE tblProducts
SET ProductCode = [ProductPrefix] + STUFF('00000' + CAST(ProductID as nvarchar(10)),1,LEN(ProductID),'')
WHERE ProductCode IS NULL OR
    ProductCode != [ProductPrefix] + STUFF('00000' + CAST(ProductID as nvarchar(10)),1,LEN(ProductID),'')

关于sql - 在 SQL 中格式化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39117284/

10-12 15:23