資料庫where查詢
Ⅰ sql where 語句查詢
對於你舉例的這個,直接用isnull(語文,''),空(NULL)為''。
where 輔助科目語文 like '%'+isnull(語文,'')+'%'這樣就行。
這樣如果語文是空的話,則拼起來的結果就是'%%',like '%%'可以起到1=1一樣的效果了。
另外也可以使用CASE WHEN
where 輔助科目語文 like (case when isnull(語文,'') = '' then '%' else '%'+語文+'%' end)
case when 就可以實現你的if功能。
有那麼麻煩么?使用 columnname like '%' + ISNULL(:參數,'') + '%'
這個肯定夠使用了。只不過你的where條件要把所有的條件都拼進去。
isnull是空則為一個值的語法,不過是SQLSERVER的。ORACLE用NVL,MYSQL應該是IFNULL。如果是空,給兩個單引號,然後和百分號一拼接,肯定是百分號,那麼使用like,當然是字元型才可以,空的話條件就是恆等。
Ⅱ sql 查詢where語句怎麼寫
select * from A where id=1
* 表示查詢的欄位,*是所有
where 後面是條件,這里條件表示在表A裡面id對應為1的數據
Ⅲ SQL查詢語句where參數
樓主這復樣寫是沒有用制的
如若你想把欄位名或者表名作參數可以這樣樣子
寫一個存儲過程 如下
ceeate proc test
@A varchar(20),@B varhcar(20)
as
declare @sql varchar(4000)
begin
set @sql='select * from info where '+ @A+'='+@B
exec @sql
end
這樣才可以,具體什麼原因很復雜,涉及到資料庫的具體編譯策略,如果樓主有興趣可以,看看資料庫的設計原理
Ⅳ sql語句where條件查詢
必須指定限定查詢。
格式:
[SELECT] [{DISTINCT}] [* |具體的列別名FROM表名稱] [{WHERE條件(s)}]
例:查詢出工資大5000的雇員的信息。
數學計算中,工資大於5000:sal > 5000
l SELECT * FROM emp WHERE sal > 4000 ;
輸出如下:
Ⅳ sql查詢中where後面可以使用變數嗎
sql查詢中where後面可以使用變數,使用方法為;
1、select 欄位名 from 資料庫表 where 欄位=條件值;如下圖所示。
Ⅵ SQL where 查詢
把Name 改成 isnull(Name,'')就可以了
Ⅶ SQL語句where多條件查詢怎麼寫
select*fromtablewherea=borb=corc=dandid>100
用or 和 and,
上面的意思是找到TABLE表裡,條件為:A=B或者B=C或者C=D,而且這條數據ID>100的。。。
注意不同資料庫用法不同,不過比較類似MSSQL MYSQL,只是一些語法上的不一樣。
條件用
OR,或者,只要滿足一個條件,
AND條件都滿足,
看你自己需求來寫。
Ⅷ SQL語句where多條件查詢怎麼寫
工具/材料:以Management Studio為例。
1、首先在桌面上,點擊「Management Studio」圖標。
Ⅸ mysql如何實現跨資料庫查詢並按where子
1、where型子查詢
(把內層查詢結果當作外層查詢的比較條件)
#不用order by 來查詢最新的商品
select goods_id,goods_name from goods where goods_id = (select max(goods_id) from goods);
#取出每個欄目下最新的產品(goods_id唯一)
select cat_id,goods_id,goods_name from goods where goods_id in(select max(goods_id) from goods group by cat_id);
2、from型子查詢
(把內層的查詢結果供外層再次查詢)
#用子查詢查出掛科兩門及以上的同學的平均成績
思路:
#先查出哪些同學掛科兩門以上
select name,count(*) as gk from stu where score < 60 having gk >=2;
#以上查詢結果,我們只要名字就可以了,所以再取一次名字
select name from (select name,count(*) as gk from stu having gk >=2) as t;
#找出這些同學了,那麼再計算他們的平均分
select name,avg(score) from stu where name in (select name from (select name,count(*) as gk from stu having gk >=2) as t) group by name;
3、exists型子查詢
(把外層查詢結果拿到內層,看內層的查詢是否成立)
#查詢哪些欄目下有商品,欄目表category,商品表goods
select cat_id,cat_name from category where exists(select * from goods where goods.cat_id = category.cat_id);