❶ sql多條件查詢,如何高效組合多個條件
多條件查詢還是不定條件查詢?
多條件查詢,要注意OR的運用,同一欄位多個OR的情況會影響效率的。
另外主要的固定條件,比如單號,集團號等建立索引。在其基礎上多用加幾個AND都沒有問題。
子查詢、函數等不合算做查詢條件。這個也會根據數量量大小而影響效率。
❷ sql復合查詢語句
selectt0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate
frompch1t0
leftjoinopcht1ont0.[DocEntry]=t1.[DocEntry]
where
t1.docdate<'2017-12-01'--條件1
andt0.itemcode='GD01002'-----條件2
union----關鍵部分,欄位一樣時,可以通過union鏈接成一個語句,當部分查詢欄位沒有時,可以根據類型補空或者0
select--t0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate
sum(t0.quantity)
fromign1t0
leftjoinoignt1ont0.[DocEntry]=t1.[DocEntry]
WHERE
t1.docdate<'2017-12-01'--條件1
andt0.itemcode='GD01002'-----條件2
groupbyt0.itemcode
……--後面繼續就行
--第二種,建臨時表
if(object_id('temp..#a')>0)
droptable#a
createtable#a
(
itemcodevarchar(100),
quantityint,
docstatusint,
canceledint,
docdatedate
)
insertinto#a(quantity,docstatus,docstatus,canceled,docdate)
selectt0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate
frompch1t0
leftjoinopcht1ont0.[DocEntry]=t1.[DocEntry]
where
t1.docdate<'2017-12-01'--條件1
andt0.itemcode='GD01002'-----條件2
insertinto#a(quantity,docstatus,docstatus,canceled,docdate)
select--t0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate
sum(t0.quantity)
fromign1t0
leftjoinoignt1ont0.[DocEntry]=t1.[DocEntry]
WHERE
t1.docdate<'2017-12-01'--條件1
andt0.itemcode='GD01002'-----條件2
groupbyt0.itemcode
……--繼續插入數據
--最後查詢
select*from#a
--關於存儲過程
Createprocsp_Test
(
@ddate,
@codevarchar(100)
)
as
begin
--這里只放一個語句,用於參數的示例,只需要將上面的語句放到存儲過程中,並將參數替換就可以了
select--t0.itemcode,t0.quantity--,t1.*,t1.docstatus,t1.canceled,t1.docdate
sum(t0.quantity)
fromign1t0
leftjoinoignt1ont0.[DocEntry]=t1.[DocEntry]
WHERE
t1.docdate<@d--條件1
andt0.itemcode=@code-----條件2
groupbyt0.itemcode
end
❸ SQL查詢語句如何合並結果
用union all
select *
from (
select [TPADEA].DEA002 as 主物料名稱,[TPADEA].DEA001 as 主物料編號,
[TPADEA].DEA057 as 主物料描述,[SGMQAB].QAB003 as 測試軟體
from [ZCDZ].[dbo].[SGMQAB],[ZCDZ].[dbo].[TPADEA]
union all
SELECT DEA001 as 測試軟體,DEA002 as 軟體名稱,DEA057 as 軟體描述,
DEA036 as 軟體版本
FROM [ZCDZ].[dbo].[TPADEA]
)a where [TPADEA].DEA001=[SGMQAB].QAB001
and [TPADEA].DEA002='M0011-101'
and [TPADEA].DEA001 like '1-D%'
and [SGMQAB].QAB003 like '6-%'
or DEA001='6-S01-151393-01'
大概這種格式,需要以怎樣的格式輸出再具體變換一下就行了
❹ SQL中多條件同時查詢語句怎麼寫
1、首先我們打開電腦里前碼的SQL打開一個資料庫。
❺ SQL server 中多條件組合查詢
因為你沒說a,b,c的數據類型,我就替你假設一下
a:數字類型 默認值為null
b:字元類型 默認值為字元串空''
c:日期類型 默認值為null
那麼語句如下:
select
*
from
table1
where
col1=isnull(a,col1)
andcol2like'%b%'
andcol3>=isnull(c,col3)
❻ 怎麼拼接sql的查詢條件
使用動態SQL啊。
SET @sql = 'SELECT * FROM TableX WHERE 1 = 1'
IF @Code <> ''
SET @sql = @sql + char(13)+char(10)
+ 'AND Code = @Code'
EXEC(@sql)
❼ sql怎麼用查詢結果作為條件進行查詢
1、查詢資料庫表的所有欄位並直接使用select語句。從資料庫表中選擇*。