国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

SQL中CASE使用

2024-07-21 02:44:51
字體:
來源:轉載
供稿:網友
今天在項目中有一問題,在網上查詢了case的用法,帖出來和大家分享下。
問題描述:在一張表中有一字段bit類型,表示此條數據是否被鎖定,在頁面上有一按鈕是對此條數據進行鎖定和解鎖的,選擇頁面中的數據,點擊這個按鈕,如果這條數據是鎖定的,就解鎖;如果是未說定的就鎖定,這樣就用一條語句來實現。后來想到以前使用過sql中的case語句能實現這種功能。查詢了一下,果然好用,呵呵.....


CASE


計算條件列表并返回多個可能結果表達式之一。

CASE 具有兩種格式:

簡單 CASE 函數將某個表達式與一組簡單表達式進行比較以確定結果。


CASE 搜索函數計算一組布爾表達式以確定結果。
兩種格式都支持可選的 ELSE 參數。

語法
簡單 CASE 函數:

CASE input_exPRession
    WHEN when_expression THEN result_expression
        [ ...n ]
    [
        ELSE else_result_expression
    END

CASE 搜索函數:

CASE
    WHEN Boolean_expression THEN result_expression
        [ ...n ]
    [
        ELSE else_result_expression
    END


參數


input_expression

是使用簡單 CASE 格式時所計算的表達式。Input_expression 是任何有效的 Microsoft? SQL Server? 表達式。

WHEN when_expression

使用簡單 CASE 格式時 input_expression 所比較的簡單表達式。When_expression 是任意有效的 SQL Server 表達式。Input_expression 和每個 when_expression 的數據類型必須相同,或者是隱性轉換。

n

占位符,表明可以使用多個 WHEN when_expression THEN result_expression 子句或 WHEN Boolean_expression THEN result_expression 子句。

THEN result_expression

當 input_expression = when_expression 取值為 TRUE,或者 Boolean_expression 取值為 TRUE 時返回的表達式。result expression 是任意有效的 SQL Server 表達式。

ELSE else_result_expression

當比較運算取值不為 TRUE 時返回的表達式。如果省略此參數并且比較運算取值不為 TRUE,CASE 將返回 NULL 值。Else_result_expression 是任意有效的 SQL Server 表達式。Else_result_expression 和所有 result_expression 的數據類型必須相同,或者必須是隱性轉換。

WHEN Boolean_expression

使用 CASE 搜索格式時所計算的布爾表達式。Boolean_expression 是任意有效的布爾表達式。

結果類型
從 result_expressions 和可選 else_result_expression 的類型集合中返回最高的優先規則類型。有關更多信息,請參見數據類型的優先順序。


以上是sql server幫助中的關于case的信息,下面來一個實例幫助理解:

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[db_case_user]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[db_case_user]
GO

CREATE TABLE [dbo].[db_case_user] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[name] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[lock] [bit] NULL
) ON [PRIMARY]
GO

insert into db_case_user (name, lock) values ('張三', 0)
insert into db_case_user (name, lock) values ('李四', 1)
insert into db_case_user (name, lock) values ('王五', 0)
insert into db_case_user (name, lock) values ('趙六', 0)


現在更新數據庫中所有人的lock字段,lock為0的更新成1,為1的更新成0。

update db_case_user
  set lock=(
   CASE lock
    WHEN 1 THEN 0
    WHEN 0 THEN 1
   END
        )
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 杭锦后旗| 阜城县| 石渠县| 遵义市| 霍林郭勒市| 绵竹市| 眉山市| 德庆县| 陆良县| 高碑店市| 五指山市| 舞阳县| 乌拉特中旗| 甘德县| 调兵山市| 务川| 孟连| 赤水市| 兴业县| 观塘区| 庆城县| 彭州市| 锡林郭勒盟| 泸定县| 双峰县| 土默特左旗| 宽甸| 什邡市| 南雄市| 开化县| 团风县| 关岭| 积石山| 淳安县| 确山县| 乐陵市| 忻州市| 合山市| 甘谷县| 辉县市| 阿克苏市|