㈠ sql server 中select set 對變數賦值
declare @name varchar(10), @address varchar(100), @age int
set @name="zhangsan";
select @age=age ,@address=address from person where name = @name
print @name+'的年齡為:'+@age +'家庭住址為:'+@address
㈡ sql 查詢中變數如何賦值
set @Date1 = DATEADD(MONTH,DATEDIFF(MONTH,0,@Date1)+1,0)
set @Date2 = DATEADD(MONTH,DATEDIFF(MONTH,0,@Date2)+2,0)-1
也就是前面用set關鍵字,表示賦值。
㈢ 資料庫、SQL:select是不是可以用來賦值
可以賦值,但是變數要先定義
㈣ Sql中的set和select賦值方式的區別
最近的項目寫的SQL比較多,經常會用到對變數賦值,而我使用SET和SELECT都會達到效果。
那就有些迷惑,這兩者有什麼區別呢?什麼時候哪該哪個呢?
經過網上的查詢,及個人練習,總結兩者有以下幾點主要區別:
假定有設定變數:
復制代碼 代碼如下:
DECLARE @VAR1 VARCHAR(1)
DECLARE @VAR2 VARCHAR(2)
1、SELECT可以在一條語句里對多個變數同時賦值,而SET只能一次對一個變數賦值,如下:
復制代碼 代碼如下:
SELECT @VAR1='Y',@VAR2='N'
-- 而SET要達到同樣的效果,需要:
SET @VAR1='Y'
SET @VAR2='N'
/*
說到這個,SQL內置的變數:@@ERROR 和 @@ROWCOUNT必須要在一句SQL語句中捕獲。如果用set分兩句來獲取它們,將獲取不完整,這時就應該用select來獲取值。
*/
2、表達式返回多個值時,用SET將會出錯,而SELECT將取最後一個值,如下:
復制代碼 代碼如下:
----以下假定Permission表有多個IsRight記錄
SELECT @VAR1 = IsRight FROM Permission --將取最後一個值
SET @VAR1 = IsRight FROM Permission --將報錯
3、表達式無返回值時,用SET將置變數值為NULL,用SELECT交保持變數值,如下:
復制代碼 代碼如下:
----以下假定Permission記錄為空
SET @VAR1 = '初始值'
SELECT @VAR1 = IsRight FROM Permission --此時@VAR1為'初始值'
SET @VAR1 = (SELECT IsRight FROM Permission) --此時@VAR1為NULL
4、使用標量子查詢時,如果無返回值,SET和SELECT一樣,都將置為NULL,如下:
復制代碼 代碼如下:
----以下假定Permission記錄為空
SET @VAR1 = '初始值'
SELECT @VAR1 =(SELECT IsRight FROM Permission ) --此時@VAR1為NULL
SET @VAR1 = ( SELECT IsRight FROM Permission) --此時@VAR1為NULL
㈤ mysql 進:在存儲過程中用select 如何給變數賦值
用select...into語句。
這個SELECT語法把選定的列直接存儲到變數。因此,只有單一的行可以被取回。
重要:
SQL變數名不能和列名一樣。如果SELECT ... INTO這樣的SQL語句包含一個對列的參考,並包含一個與列相同名字的局部變數,MySQL當前把參考解釋為一個變數的名字。例如,在下面的語句中,xname 被解釋為到xname variable 的參考而不是到xname column的:
CREATEPROCEDUREsp1(xVARCHAR(5))
BEGIN
DECLARExnameVARCHAR(5)DEFAULT'bob';
DECLAREnewnameVARCHAR(5);
DECLARExidINT;
SELECTxname,idINTOnewname,xid
FROMtable1WHERExname=xname;
SELECTnewname;
END;
當這個程序被調用的時候,無論table.xname列的值是什麼,變數newname將返回值『bob』。
㈥ 如何用SQL代碼將動態查詢結果賦值給變數
1、首先最基本的賦值就是默認值了。
㈦ sql server 2000 如何把select的值賦給一個變數
直接使用 = 號可以賦值,如圖把a列的值賦給變數 @name
需要注意:
1、sql中 使用 declare 聲明 變數,變數要以@開頭。
2、如果是直接賦值使用set ,如: set @name = 'name'
3、select 子句中賦值,需要注意結果集,如第一個例子中,
select @name = a from a (去除了 id=2的篩選),那麼結果集為多條記錄
那麼@name 接收的值是結果集最後一條記錄中 a列的值。
㈧ Sql中的set和select賦值方式的區別
SELECT賦值是通過查詢語句返回唯一一條結果,給變數賦值
如
SELECT @ACCOUNT=ACCOUNT,@NAME=NAME
FROM 用戶表
WHERE ID=@ID--唯一主鍵
SET 賦值是變數間賦值,或變數初始化。
如
SET @NAME='張三'
根據實際情況使用不同的方式獲取需要的值。是根據數據來源來區分的。
㈨ Sql中如何給變數賦值
DECLARE @n1 int,@n2 varchar(10)
set @n1 =(select age from table where column=xxx)
set @n2=(select gender from table where column = xxx )
------------------
或者一起賦值
就是樓上那個
DECLARE @n1 int,@n2 varchar(10)
select @n1 =age,@n2=gender
from table where column = xxx
------------------
select @n1,@n2 就知道變數的值了