如何使临时变量在 select 语句中充当 *,在 t-sql 中

How to make a temporary variable act as * in a select statement, in t-sql

当用'*'写select语句时(例如select * (...)),我想使用键盘组合[shift+2] +[2 ],而不是 [shift+8]。这是因为我可以在键盘上找到右移键和 2 键比左移键和 8 键更容易。虽然它对你来说可能看起来很随意,但对我来说并非如此,而且潜在的问题无论如何都是有效的。至少我认为是。 :)

我尝试通过 declaring a variable 使用名称“@2”来完成我想要的,我想要 the dbms to interpret that as '*' and not as a 'string *',作为 *-command。后来我想把它作为一个全局变量,但是为了这个问题的目的,我问它是否只想要一个临时变量。

Is it possible 让 dbms 将其解释为 * 命令?如果是这样,如何?可能我需要使用 different datatype,但是哪个?

查看脚本下方,现在的结果和期望的结果。希望能帮到你。

脚本片段:

declare @2 nvarchar
set @2='*'

select @2 from TableAA

现在结果:

(No column name)
*
*
*
etc

想要的结果:

A    B    C
1    43   25
2    33   788
3    13   83
etc.

//看来不能……看下面的答案。我确实做了一些其他事情来实现类似的目标:我安装了 AutoHotkey 并编写了一个脚本,当我按下左移键和 Escape 键时,它会插入一个“*”。奇迹般有效。请参阅下面的脚本。

>+Esc::
Send, *
Return

您不能使用变量名来绑定列。你必须在下面使用 Dynamic SQL:

DECLARE @2 NVARCHAR(10)  
SET @2 = '*'  
DECLARE @sql NVARCHAR(1000); 

SET @sql = N'SELECT ' + @2 + ' FROM TableAA'
EXEC(@sql)