① sql语句中的列名怎么才能用变量代替,请看详情
用sp_executesql执行,sp_executesql的用法参考:
EXECUTE sp_executesql @strSql,N'@nCount int out,@TickTypeId int,@StartTickId int,@EndtickId int',
@nCount out ,@TickTypeId,@StartTickId,@EndtickId
把你的列名放组合后得到@strSql字符串
② SQL 查询语句如何定义变量
as在SQL中是别名的用法,它可以为表名取别名,也可以为列名取别名,
其作用主要是为了增加可读性。
③ 在SQL把变量名变为列名
你需要使用动态SQL
把你要执行的语句变为字符串变量进行拼接
然后运行exec 字符串变量即可;
例子:
declare @aa int
declare @sql varchar(1000)
set @aa='101'
while(@aa>108)
begin
select @sql='update xgxred set a'+@aa+'=@get_amount where subjectid_xgx=@titleid '
SET @aa=@aa_1
end
④ SQL查询怎么用变量重命名列名
declare @a varchar(20)
set @a='20191211'
Exec ('SELECT buy_date AS "' + @a + '" FROM T1')
⑤ 如何将sql server 中的字段名定义为变量
不可以,列名、表名都不能用变量,可以通过拼接字符,然后用exec来执行 如,exec('update tb set '+列名变量+'='''+字符类的变量值+''' where 条件')
⑥ sql中的变量定义
你的用法有错误,变量不能这样使用的,
as在SQL中是别名的用法,它可以为表名取别名,也可以为列名取别名,
其作用主要是为了增加可读性。
示例:为列取别名的两种写法
1、字段名 as 别名 注:as 也可以省略
select id as 编号,name as 姓名 from table1
这句也可以写成:
select id 编号,name 姓名 from table1
2、用等号来使用别名
select 编号=id,姓名=name from table1
其效果和前两个语句一样
示例2:为表名取别名的用法
select a.id 编号,name 姓名 from table1 as a join table2 as b on a.id=b.id
其中as 也可以省略。
⑦ SQL 查询语句如何定义变量
as在SQL中是别名的用法,它可以为表名取别名,也可以为列名取别名,
其作用主要是为了增加可读性。
⑧ 用SQL向以变量定义列名的表中插入数据时,怎么取得列名
很简单,所有列名都不写就行了。
insert into #xsmx1
select customer,month1_quantity,month2_quantity,month3_quantity,
avg_quantity,wait_quantity from #xsmx
如果非要写列名,用拼接sql的方法吧,
exec('insert into #xsmx1 (客户名称,['+@month1+'],['+@month2+'],本月已发,月平均用量,本月待发量) select customer,month1_quantity,month2_quantity,month3_quantity,
avg_quantity,wait_quantity from #xsmx')
⑨ 求教sql server 可以把列名当做变量吗
不可以,列名、表名都不能用变量,可以通过拼接字符,然后用exec来执行
如,exec('update tb set '+列名变量+'='''+字符类的变量值+''' where 条件')
⑩ SQL Server 2005存储过程分页排序设置列名为变量
用字符串的方式来做,先生成查询字符串,然后执行
/*******************************************************************************
Author : Richard.Cai
CreateDate : 2008-12-22
UpdateDate : 2008-12-25
Amendment History:
Update by $$$$$$$$$$$ 2008/12/25 : Alter content.
*******************************************************************************/
ALTER PROCEDURE [dbo].[USP_AT_MR_SearchClient]
(
@PageSize INT = 10 --The size per page
,@PageStart INT = 0 --The page start,not contain this no..
,@WhereStr NVARCHAR(MAX) = '' --For example:' AND ClientName like '%AS%''
,@DebugFlag BIT = 0
)
AS
DECLARE @TableName NVARCHAR(255) --Only a table name
DECLARE @FieldName NVARCHAR(255) --Field name that data is unique.
DECLARE @sSQL NVARCHAR(MAX)
DECLARE @sTMP NVARCHAR(MAX)
DECLARE @sOrderBy NVARCHAR(255)
/*Generate Paging Data*/
SELECT @sSQL=N'SELECT '+CHAR(13)
+N' ROW_NUMBER() OVER(ORDER BY SysID) AS PageID '+CHAR(13)
+N' ,Client_id As ClientCode '+CHAR(13)
+N' ,CAST(RTRIM(Client_e) AS NVARCHAR(50)) As ClientName '+CHAR(13)
+N' ,CAST(RTRIM(Client_c) AS NVARCHAR(50)) As ClientNameLocal '+CHAR(13)
+N'INTO #Client '+CHAR(13)
+N'FROM Client '+CHAR(13)
+N'WHERE 1 = 1 ' + @WhereStr +CHAR(13)
+N' '+CHAR(13)
+N'SELECT * FROM #Client '+CHAR(13)
+N'WHERE PageID > ' + RTRIM(@PageStart) + ' AND PageID <= ' + RTRIM(@PageStart+@PageSize)+CHAR(13)
+N' '
+N'SELECT COUNT(*) As TotalCount FROM #Client'
IF @DebugFlag = 1
PRINT '/*Paging SQL:*/'+CHAR(13)+@sSQL
EXEC SP_EXECUTESQL @sSQL