關於sql中如何動態加WHERE條件

2021-07-24 23:03:59 字數 538 閱讀 1207

select row_number()over(order by fromloc) rowindex,*  from @tasktable

where 1=1 and case when @loc<>'' then fromloc

when @loc='' then @loc end =@loc

and case when @sku<>'' then sku

when @sku='' then @sku end =@sku

and case when @batch<>'' then batchcode

when @batch='' then @batch end =@batch

解釋:@tasktable表示1個表名,可以是表、臨時表

@loc是其中乙個查詢條件 fromloc是字段,fromloc=@loc 表示where的時候查詢此條件

,when @loc=''  then @loc 表示沒有查詢條件是,where中的查詢是『』=『』。

@sku和@batch是另外2個查詢條件,這裡不再做解釋。

SQL中join操作後面的on與where的區別

join關鍵字的作用是將多個表按一定的條件聯合起來,從而可以實現從多個表中獲取資料 在join後面可以接on條件和where條件,在這裡我主要就是說這兩者之間的差別 建立兩張簡單的用來測試的表並新增資料,如下所示,一張表名為id name,另一張表名為id age 首先看看不新增條件 t2.age ...

SQL中join連線後面的on與where的區別

兩張測試表,資料如下 語文 select from t class a inner join t student b on a.id b.class id where a.name 語文 內連線下,不管a.name 語文 這個條件是在on還是在where中,查詢結果都是相同的 第一段指令碼 第二段指...

關於動態SQL

目前在oracle開發過程中,我所用到的動態sql的一點心得。我把它分為form級 table級和pl sql級。1 form級 方法一 forms ddl 支援pl sql和部分ddl 建表 forms ddl create table temp n number 刪表 forms ddl dro...