DECLARE @myvariable VARCHAR(100)
SET @myvariable = 'mytext'
SELECT Name FROM Customers AS @myvariable
如何做到这一点?
回答Gareth: 这样我就可以在做这样的事情时保留列的原始名称:
declare @myvariable varchar(20)
set @myvariable='Name'
select case @myvariable when 'Name' then Name
when 'Id' then Id
end
as Name
from Customers
现在,当@myvariable的值发生变化时,colum名称不会,但我需要它与@myvariable相同。
答案 0 :(得分:2)
这样的事情可以起作用
DECLARE @myvariable VARCHAR(100)
SET @myvariable = 'mytext'
DECLARE @sql NVARCHAR(200)
SET @sql = 'SELECT Name AS ' + QUOTENAME(@MyVariable) + ' FROM Customers'
EXEC sp_executesql @sql
答案 1 :(得分:0)
我想我明白你要问的是什么,你需要使用的是PL / SQL,我对你的问题的理解是你想要一个你想要输入变量名的程序输出结果。
SET SERVEROUTPUT ON;
CREATE OR REPLACE PROCEDURE FindCustomer(customerName IN STRING) AS
BEGIN
SELECT NAME INTO CUSTNAME FROM CUSTOMER WHERE NAME = customerName;
DBMS_OUTPUT.PUT_LINE(CUSTNAME);
END FindCustomer;
/
PROMPT 'Input Customer\'s name';
ACCEPT temp;
EXECUTE FindCustomer(&temp);
我不完全确定这是否正确,因为我没有测试它,但是,这是一个PL / SQL函数,理论上会返回您通过键盘或其他任何东西输入脚本的客户的名称输入。如果您想了解有关PL / SQL的更多信息,我建议您转到here