當前位置:首頁 » 編程語言 » sql中變數定義查詢
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql中變數定義查詢

發布時間: 2022-11-27 10:36:36

sql怎麼根據篩選條件定義變數

需要加global,如果是會話級別則需要加session,不加默認會話。
SQL是1986年10月由美國國家標准局(ANSI)通過的資料庫語言美國標准,接著,國際標准化組織(ISO)頒布了SQL正式國際標准。1989年4月,ISO提出了具有完整性特徵的SQL89標准,1992年11月又公布了SQL92標准,在此標准中,把資料庫分為三個級別:基本集、標准集和完全集。
SQL語言,是結構化查詢語言(StructuredQueryLanguage)的簡稱。SQL語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統,同時也是資料庫腳本文件的擴展名。

② sql server 用變數定義表名,能夠查詢

sql server 中查詢使用變數定義表名,需要配合exec()來實現。


如圖中例子,使用 @char_table 接收 表名變數


SQL中:declare @ 定義變數,set 給變數賦值。exec()來執行動態SQL語句

③ SQL里怎麼用變數實現模糊查詢

select * from user where user_name like '%' || 變數 || '%'
這樣寫就可以了。

④ SQL 查詢語句如何定義變數

as在SQL中是別名的用法,它可以為表名取別名,也可以為列名取別名,

其作用主要是為了增加可讀性。

⑤ SQL中全局變數和局部變數的用法

局部變數是用戶可自定義的變數,它的作用范圍僅在程序內部。在程序中通常用來儲存從表中查詢到的數據,或當作程序執行過程中暫存變數使用。局部變數必須以「@」開頭,而且必須先用DECLARE命令說明後才可使用。其說明形式如下:

DECLARE@變數名變數類型[@變數名變數類型…]

其中變數類型可以是sql server(WINDOWS平台上強大的資料庫平台) 2000支持的所有數據類型,也可以是用戶自定義的數據類型。
在Transact-SQL中不能像在一般的程序語言中一樣使用「變數=變數值」來給變數賦值。必須使用SELECT或SET命令來設定變數的值,其語法如下:

SELECT@局部變數=變數值
SET@局部變數=變數值1212

例:聲明一個長度為10 個字元的變數「id」並賦值

declare@idchar(10)
select@id=『10010001』1212

注意:可以在Select命令查詢數據時,在Select命令中直接將列值賦給變數。
例:查詢編號為「10010001」的員工和工資,將其分別賦予變數name和wage

usepangu
declare@namechar(30)@wagemoney
select@name=e_name,@wage=e_wage
fromemployee
whereemp_id='10010001'
select@namease_name,@wagease_wage123456123456

運行結果如下:

e_namee_wage
-----------------------------------------
張三8000.0000123123

注意:資料庫語言和編程語言有一些關鍵字,關鍵字是在某一一樣下能夠促使某一操作發生的字元組合,為避免沖突和產生錯誤,在命令表、列、變數以及其它對象時應避免使用關鍵字。

全局變數

全局變數是sql server(WINDOWS平台上強大的資料庫平台)系統內部使用的變數,其作用范圍並不局限於某一程序,而是任何程序均可隨時調用全局變數通常存儲一些sql server(WINDOWS平台上強大的資料庫平台)的配置設定值和效能統計數據。用戶可在程序中用全局變數來測試系統的設定值或Transact-SQL命令執行後的狀態值。有關sql server(WINDOWS平台上強大的資料庫平台) 全局變數的詳細情況請參見附錄。

注意:全局變數不是由用戶的程序定義的,它們是在伺服器級定應義的。只能使用預先說明及定義的變局變數。引用全局變數時,必須以「@@」開頭。局部變數的名稱不能與全局變數的名稱相同、否則會在應用中出錯。

⑥ 有關SQL存儲過程變數模糊查詢

小菜一疊啦^_^

DECLARE @CaseID varchar(256)
SET @CaseID = '125'
SELECT * FROM [tb_tableName] WHERE 欄位ID LIKE '%['+@CaseID+']%'

上面這個正則查詢就可以滿足你的要求呀

DECLARE @CaseID varchar(256)
SET @CaseID = '19999'
SELECT * FROM [tb_aTemp] WHERE 欄位ID LIKE '%['+@CaseID+']%'

TO:我用一個變數在SQL存儲過程中可以返回一個結果.現在是想通過執行存儲過程一次性返回多個結果,請問變數該怎麼定義?

RE:

CREATE PROCEDURE SP_tableName(
@CaseID NVARCHAR(50)
)
AS
BEGIN
SET NOCOUNT ON
DECLARE INT @Identity
SET @Identity = 0
INSERT INTO [tb_tableName] (CaseID)VALUES(@CaseID)
SET @Identity = SCOPE_IDENTITY()

IF (@Identity)>0
BEGIN
SELECT * FROM [tb_tableName] --這里根據你的查詢條件,返回的多個需要的得到的欄位
END
SET NOCOUNT OFF
END
GO

-- 程序調用的時候用 DataSet 來獲得多個你需要的欄位值,如果 DataSet 返回 0 或者拋出異常則插入數據失敗

-- 帶返回值的

CREATE PROCEDURE SP_tableName(
@CaseID NVARCHAR(50),
@Identity INT OUTPUT
)
AS
BEGIN
SET NOCOUNT ON
INSERT INTO [tb_tableName] (CaseID)VALUES(@CaseID)
SET @Identity = SCOPE_IDENTITY()

IF (@Identity)>0
BEGIN
SELECT * FROM [tb_tableName] --這里根據你的查詢條件,返回的多個需要的得到的欄位
END
SET NOCOUNT OFF
RETURN @Identity
END
GO

-- 程序調用的時候用 DataSet 來獲得多個你需要的欄位值, 並可獲得剛插入的自動編號輸出參數
-- 如果 DataSet 返回 0 ,或者 @Identity 返回0, 或者 DataSet 拋出異常則插入數據失敗

首先你要明白模糊查詢和精確查詢的概念,試想網路,GOOGLE的技術力量那麼專業強大,其模糊查詢的結果不同樣也存在很多很多的冗餘數據嗎

CaseID like '%['+@CaseID+']%' 結果當然是貪婪模式

當然,你也可以採用如下方法使其盡可能的接近目標匹配:

%
_
[]
[^]
等等...........

如果精確查詢,必須

CaseID=@CaseID

或者

CaseID IN (@CaseID)

在模糊查詢的情況下,解決重復數據的唯一方法就是再增加一個(或N個)查詢條件

⑦ SQL之變數

SQL中變數包括局部變數和全局變數

兩者的區別:SET賦值語句一般用於賦給變數一個指定的常量,SELECT賦值語句一般用於從表中查詢出數據然後賦給變數。
例如:
例如:

例如:

⑧ sql中的變數定義後的查詢問題

剛申請了個 BAIDU 的用戶,來知道裡面瞧瞧~~```
select (……)as (……)
其中第一個 (……) 表示 原列名
第二個 (……) 表示 你起的別名
AS 是 作用與起別名用的,
比如說
SELECT COLUMN_A FROM TABLE
這一句 SQL 查詢出來的顯示列名是 COLUMN_A
SELECT COLUMN_A AS COLUMN_B FROM TABLE
這一句 SQL 查詢出來的顯示列名是 COLUMN_B

⑨ sql server 如何定義及查看用戶自己定義的變數

declare @品牌名稱 nvarchar(10)
set @品牌名稱 = N'全球通'

查看:
select @品牌名稱
-- 或
print @品牌名稱