0
DECLARE @myvariable VARCHAR(100)
SET @myvariable = 'mytext'

SELECT Name FROM Customers AS @myvariable

どうすればそれを行うことができますか?

ガレスへの回答: これにより、次のようなことを行うときに、列の元の名前を保持できます。

declare @myvariable varchar(20)
set @myvariable='Name'

select case @myvariable when 'Name' then Name
                        when 'Id' then Id
       end
          as Name

from Customers

現在、@myvariable の値が変更された場合、列名は変更されませんが、@myvariable と同じにする必要があります。

4

2 に答える 2

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
于 2012-05-03T16:58:25.540 に答える
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 について詳しく知りたい場合は、ここを参照することをお勧めします。

于 2012-05-03T17:17:39.370 に答える