如何使临时变量在 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)
当用'*'写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)