SQL 替换所有值的子查询
SQL Subquery to replace all values
我有一个查询 returns 一堆不同的数据,但是我想让它在特定条件下替换所有值。
我在下面写的内容有点给了我想要的结果,但不是真的。它创建一个新列而不是替换另一列:
SELECT
CASE
WHEN T4.[U_DestType] = '6'
THEN (SELECT
'Company Limited' AS [ShipToCode]
)
END AS [ShipToCode],
T2.[ShipToCode],
T6.[StreetS],
T6.[StreetNoS],
T6.[CityS],
T6.[ZipCodeS],
T6.[CountryS],
T5.[LicTradNum],
T2.[CardCode],
T4.[Phone1],
T4.[E_Mail],
T4.[U_DestType],
CASE
WHEN T4.[Country] = 'GB'
THEN 'EN'
ELSE T4.[Country]
END AS [Country],
T4.[U_ShortName]
FROM[...]
最终目标是用一些预设值替换所有列,而不仅仅是上面的 ShipToCode。
我也试过在 FROM 之后放置一个 EXIST 子查询,但这也没有用。
这可能吗?我可能遗漏了一些非常明显的东西。
非常感谢!
您可以在 CASE 表达式中使用 ELSE 来组合两者 "columns":
CASE
WHEN T4.[U_DestType] = '6'
THEN (SELECT
'Company Limited' AS [ShipToCode]
)
ELSE T2.[ShipToCode]
END AS [ShipToCode],
顺便说一句,您不需要使用 Sub-Select。这同样有效并且更易于阅读:
CASE
WHEN T4.[U_DestType] = '6' THEN 'Company Limited'
ELSE T2.[ShipToCode]
END AS [ShipToCode],
我有一个查询 returns 一堆不同的数据,但是我想让它在特定条件下替换所有值。
我在下面写的内容有点给了我想要的结果,但不是真的。它创建一个新列而不是替换另一列:
SELECT
CASE
WHEN T4.[U_DestType] = '6'
THEN (SELECT
'Company Limited' AS [ShipToCode]
)
END AS [ShipToCode],
T2.[ShipToCode],
T6.[StreetS],
T6.[StreetNoS],
T6.[CityS],
T6.[ZipCodeS],
T6.[CountryS],
T5.[LicTradNum],
T2.[CardCode],
T4.[Phone1],
T4.[E_Mail],
T4.[U_DestType],
CASE
WHEN T4.[Country] = 'GB'
THEN 'EN'
ELSE T4.[Country]
END AS [Country],
T4.[U_ShortName]
FROM[...]
最终目标是用一些预设值替换所有列,而不仅仅是上面的 ShipToCode。
我也试过在 FROM 之后放置一个 EXIST 子查询,但这也没有用。
这可能吗?我可能遗漏了一些非常明显的东西。
非常感谢!
您可以在 CASE 表达式中使用 ELSE 来组合两者 "columns":
CASE
WHEN T4.[U_DestType] = '6'
THEN (SELECT
'Company Limited' AS [ShipToCode]
)
ELSE T2.[ShipToCode]
END AS [ShipToCode],
顺便说一句,您不需要使用 Sub-Select。这同样有效并且更易于阅读:
CASE
WHEN T4.[U_DestType] = '6' THEN 'Company Limited'
ELSE T2.[ShipToCode]
END AS [ShipToCode],