sql自定義變數
⑴ sql server2005中如何定義變數,如何給變數賦值
Sqlserver中存可以定義
:全局變數 DECLARE @@變數名 類型
:局部變數 DECLARE @變數名 類型
賦值方式:
--一. SET賦值
DECLARE @Name varchar(50),@@Name varchar(50)
SET @Name='局部張三'
SET @@Name='全局張三'
SELECT @@Name+' '+@Name
--二. SELECT 賦值
DECLARE @Name varchar(50),@@Name varchar(50)
SELECT @Name='局部張三',@@Name='全局張三'
SELECT @@Name+' '+@Name
--順便說下
--1.變數的作用域是有限的
--2.進行變數操作,需初始化
DECLARE @Name varchar(50)
--SET @Name=''
SET @Name = @Name+'張三'
SELECT @Name --結果將為NULL
--3.變數也是存在表變數,表變數與物理表存在一定區別
表變數與物理表存在一定區別 可以自己找點資料
希望對你有幫助
⑵ .sql文件中怎麼聲明變數請詳細說一下。
聲明變數:
declare @變數名 變數類型
如:
declare @datetime datetime
設置變數值:
set @變數名 = 值
設置變數為當前時間:
set @變數名 = getdate()
⑶ 如何在SQL中聲明一個數組變數以及相關SQL語
集合:是具有相同定義的元素的聚合。Oracle有兩種類型的集合:
可變長數組(VARRAY):可以有任意數量的元素,但必須預先定義限制值。
嵌套表:視為表中之表,可以有任意數量的元素,不需要預先定義限制值。
在PL/SQL中是沒有數組(Array)概念的。但是如果程序員想用Array的話,就得變通一下,用TYPE 和Table of Record來代替多維數組,一樣挺好用的。
emp_type 就好象一個table 中的一條record 一樣,裡面有id, name,gender等。emp_type_array 象個table, 裡面含有一條條這樣的record (emp_type),就象多維數組一樣。
--單維數組
DECLARE
TYPE emp_ssn_array IS TABLE OF NUMBER
INDEX BY BINARY_INTEGER;
best_employees emp_ssn_array;
worst_employees emp_ssn_array;
BEGIN
best_employees(1) := '123456';
best_employees(2) := '888888';
worst_employees(1) := '222222';
worst_employees(2) := '666666';
FOR i IN 1..best_employees.count LOOP
DBMS_OUTPUT.PUT_LINE('i='|| i || ', best_employees= ' ||best_employees(i)
|| ', worst_employees= ' ||worst_employees(i));
END LOOP;
END;
--多維數組
DECLARE
TYPE emp_type IS RECORD
( emp_id employee_table.emp_id%TYPE,
emp_name employee_table.emp_name%TYPE,
emp_gender employee_table.emp_gender%TYPE );
TYPE emp_type_array IS TABLE OF emp_type INDEX BY BINARY_INTEGER;
emp_rec_array emp_type_array;
emp_rec emp_type;
BEGIN
emp_rec.emp_id := 300000000;
emp_rec.emp_name := 'Barbara';
emp_rec.emp_gender := 'Female';
emp_rec_array(1) := emp_rec;
emp_rec.emp_id := 300000008;
emp_rec.emp_name := 'Rick';
emp_rec.emp_gender := 'Male';
emp_rec_array(2) := emp_rec;
FOR i IN 1..emp_rec_array.count LOOP
DBMS_OUTPUT.PUT_LINE('i='||i
||', emp_id ='||emp_rec_array(i).emp_id
||', emp_name ='||emp_rec_array(i).emp_name
||', emp_gender = '||emp_rec_array(i).emp_gender);
END LOOP;
END;
-------------- Result --------------
i=1, emp_id =300000000, emp_name =Barbara, emp_gender = Female
i=2, emp_id =300000008, emp_name =Rick, emp_gender = Male
⑷ SQL 查詢語句如何定義變數
as在SQL中是別名的用法,它可以為表名取別名,也可以為列名取別名,
其作用主要是為了增加可讀性。
⑸ sql定義一個double變數怎麼定義
declare @abc float
set @abc=CAST(123.123656 as decimal(38,3))
print @abc
你看這樣行不行。
⑹ SQL自定義變數問題
declare@PRDT_Bvarchar(20),@PRDT_Evarchar(20)--定義變數
set@PRDT_B=:PRDT_B!貨號--賦值
if(@PRDT_B='')--條件御和當@PRDT_B值為空時
襲拆槐set@PRDT_B=(selectmin(prd_no)fromprdt)--從表prdt里查詢出最小拍友的prd_no的值來賦值
⑺ Kettle8.2下設置自定義SQL中多時間變數參數
kettle下使用SQL語句仔爛慶時經常會限定時間進行取數,每次改動就比較麻煩,可通過引用變數參數的方式自動引用,方便使用.
一.新建轉換,獲取各種想要的變數參數:
1.<獲取系統信息>:通歷檔過控制項獲取到所需要的時間參數
2.<增加常量>:通過控制項可以設置想要獲念握得天數的差值
二.測試
1.新建轉換,然後在表輸入階段使用參數,切記需要勾上'替換SQL語句里的變數',且變數名需要設置為上面步驟4中顯示的變數名
⑻ SQL文件中怎麼聲明變數
declare @變數名 varchar(長度)/char(長度)/int/numeric(長度,位數)
直接給定義好的變數賦值:
set @變數名 = 值
print @變數名 可以查看值
注意:需要從開始定義變數名開始選中運行,sql會每次自動釋放定義的變數