我想获得MAX的int列,但我的列是循环变量。
我试过这个
Declare @sql nvarchar(max)
Declare @gender nvarchar(10)
Declare @max int
Declare @col int
set @col = 'UserId'
set @gender='0'
set @sql = 'Select @max = MAX(@col) From CustomerTbl Where Gender=@gender'
print @sql
Execute sp_executesql @sql , N'@gender nvarchar(10), @count int OUTPUT ,@col int',@gender,@max OUTPUT,@col
sELECT @max`我想要变量@max中每一列或当前列的最大值,但是我得到了一个错误
将varchar值“UserId”转换为数据类型int时,转换失败。
发布于 2019-01-09 06:53:22
您将@col变量声明为int,但您正在尝试设置'UserId'文本。这显然是不可能发生的。
在构造动态查询时设置列名(UserId):
set @sql = 'Select @max = MAX(UserId) From CustomerTbl Where Gender=@gender'如果获得列名运行时,则将@col变量的类型更改为nvarchar(128),不使用参数,但将其连接起来:
set @sql = 'Select @max = MAX(' + @col + ') From CustomerTbl Where Gender=@gender'https://stackoverflow.com/questions/54104514
复制相似问题