在其他 SELECT 中使用 SELECT 结果作为 COLUMN 名称 [英] Use SELECT result as COLUMN name in other SELECT

查看:44
本文介绍了在其他 SELECT 中使用 SELECT 结果作为 COLUMN 名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以将选择的结果作为字符串与其他选择中列名中的另一个字符串连接?

Is it possible to use the result of a select as a string to concatenate with another string in column name in other select?

示例:

SELECT brand 
FROM articles a 
WHERE a.id='12345678'

结果:BRAND_A

我现在想将 _PRICE 连接到 BRAND_A...

I now want to concatenate _PRICE to 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'

推荐答案

您不需要动态 SQL 来执行此操作(并且应尽可能避免使用动态 SQL).相反,您可以使用 CASE 语句.您可以使用单个语句完成此操作,但为了显示目的,我已将其拆分:

You don't need dynamic SQL to do this (and dynamic SQL should be avoided if at all possible). Instead you can use a CASE statement. You can do this with a single statement but I've split it out for display purposes:

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'

这篇关于在其他 SELECT 中使用 SELECT 结果作为 COLUMN 名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆