是否可以使用select的结果作为字符串与其他select中的列名中的另一个字符串连接?
示例:
SELECT brand
FROM articles a
WHERE a.id='12345678'
结果:BRAND_A
我现在想要将_PRICE
连接到BRAND_A
...
SELECT (
SELECT brand
FROM articles a
WHERE a.id = '12345678'
) + "_PRICE"
FROM prices p
WHERE p.id = '12345678'
...实际检索:
SELECT BRAND_A_PRICE
FROM prices p
WHERE p.id = '12345678'
答案 0 :(得分:9)
您不需要动态SQL来执行此操作(如果可能的话,应该避免使用动态SQL)。相反,您可以使用CASE语句。您可以使用一个语句执行此操作,但我将其拆分出来用于显示目的:
DECLARE @brand VARCHAR(100) = (SELECT brand FROM articles a WHERE a.id='12345678')
SELECT CASE @brand
WHEN 'BRAND_A' THEN BRAND_A_PRICE
WHEN 'BRAND_B' THEN BRAND_B_PRICE
WHEN 'BRAND_C' THEN BRAND_C_PRICE
ELSE 0 END AS PRICE
FROM prices
WHERE id='12345678'
答案 1 :(得分:6)
我认为你需要一个Dynamic SQL query
。
首先将特定Brand
的{{1}}存储在变量中,然后使用ID
中附加Dynamic Query
的变量来获取结果
_PRICE