① 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