我有2个表。在table1
我有一些行像这样的人:替换SQL Server中SELECT语句中的列的单引号
- PersonX - ID
- PersonX - 名称
- PersonX - 地址
- PersonY - ID
- PersonY - 年龄
在第二张表中,上面提到的ID, NAME,ADDRESS,AGE
将是栏。我们在这里有personX和PersonY的详细数据。
现在,主要的问题是在存储过程中,使用光标,我在变量存储@Element
值table1
('ID', 'Name', ...
)。
现在我正在使用作为下同游标select语句:
SELECT @Element From Table2
我需要的用户的细节,如他的身份证,年龄,地址等输出,但不是我得到输出'ID', 'NAME', 'AGE'
等... 。
我发现,这是因为@Element
是varchar
,具有字符串值,因此选择语句如下执行:
SELECT 'ID' from table2.
但我需要的是像下面
SELECT ID FROM TABLE2
我用替换功能,它不是为我工作。案例功能,我无法使用它,因为我们无法说出table1
中某个人的数据。它有所不同。我需要一个可用于所有记录的动态语句。而不是为每个记录执行大小写。
SELECT REPLACE(@Element,'''','')
FROM TABLE2
(仍然得到 'ID' 作为输出,而不是在表2换算值)
请帮我在这。希望你能理解我的解释
如果你想在'SELECT'中**参数化**表或列名,你必须使用**动态SQL ** - 将你的SQL语句创建为NVARCHAR(x)变量,然后执行你已经建立的SQL语句。没有其他办法可以做到这一点。 –