當前位置:首頁 » 編程語言 » sqlserverselectif

sqlserverselectif

發布時間: 2022-11-03 07:32:55

sql語句查出的數據為空,怎麼用個if語句判斷,然後作出處理

可以實現,以sql server為例看:
if not exists(select userName from food join diningcar on food.foodId=diningcar.foodId join users on diningcar.userId=users.userId where (comment=0 or comment=-1) and userName='zq' group by userName)
select 0,'zq'
else
select sum(price),userName from food join diningcar on food.foodId=diningcar.foodId join users on diningcar.userId=users.userId where (comment=0 or comment=-1) and userName='zq' group by userName

方法二:
select isnull(sum(price),0),userName
from food join diningcar on food.foodId=diningcar.foodId
join users on diningcar.userId=users.userId
where (comment=0 or comment=-1) and userName='zq'
group by userName

不知道是不是你想要的結果,但是我有個疑問,你為什麼不在程序里進行判斷,而是要讓sql語句判斷呢?

Ⅱ SQL server if else怎麼使用

if (select count(*) from A1 where dic like '%auth_info%')>0
或者
if exists(select * from A1 where dic like '%auth_info%')

Ⅲ sql 查詢時有空值返回0怎麼寫

根據資料庫的不同,採用如下不同的方法:

  1. oracle

    將空值返回0用如下語句:
    select nvl(欄位名,0) from 表名;

  2. sqlserver

    將空值返回0用如下語句:


    方法一:select isnull(欄位名,0) from 表名;
    字元型:select isnull(mycol,'0') as newid from mytable
    整型:select isnull(mycol,0) as newid from mytable


    方法二:case ……end
    case when columnName is null then 0 else columnName end

  3. mysql

    將空值返回0用如下語句:
    select ifnull(欄位名,0) from 表名;


拓展資料:

SQL SELECT 語句

SELECT 語句用於從表中選取數據。

結果被存儲在一個結果表中(稱為結果集)。

SQL SELECT 語法

SELECT 列名稱 FROM 表名稱。

Ⅳ Sql Server 可以支持在sql中寫if或switch嗎

當然可以,語法如下:

select
isnull(col1,'')asnewcol1,
case
whencol1=10then'A'
whencol1=11then'B'
else
'C'
endasnewcol2
from
table_name

Ⅳ 求教,sql的if如何使用

SQLServerIF用法:
IF條件表達式
BEGIN
SQL語句
END
ELSE
BEGIN
SQL語句
END
設置一個變數@sex,如果@sex為』F』,
那麼查詢Employees中所有TitleOfCourtesy為』Ms.』或
』Mrs.』的所有記錄;如不是,查詢剩下的紀錄。

declare@sexchar(1)
set@sex='M'
if@sex='F'
begin
select*fromEmployees
whereTitleOfCourtesy='Ms.'
orTitleOfCourtesy='Mrs.'
end
else
begin
select*fromEmployees
whereTitleOfCourtesy<>'Ms.'
andTitleOfCourtesy<>'Mrs.'
end

Ⅵ 在sql server2012中,if語句怎樣顯示select的結果我的只有返回值。在線等。代碼如下

--用這個 我測試過了
CREATE Procere stu_age
@sno char(3)
,@return nvarchar(2)=null
AS BEGIN
--& ISNUMERIC(@sno) 如果你這地方是判斷是否是數字 就這樣寫 & ISNUMERIC(@sno)=1
--你這樣寫是沒有意義的
IF LEN(@sno)=3
BEGIN
SELECT @return=DATEDIFF(YEAR,sbirthday,GETDATE())
FROM student
WHERE sno=@sno
print @return
END
ELSE
BEGIN
print ('返回失敗');
END
END

Ⅶ 求助,如何在SELECT語句中加上IF判斷

例:

select *,if(sva=1,"男","女") as ssva from tableame where id =1

Quote

控制流程函數


CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END

在第一個方案的返回結果中, value=compare-value。而第二個方案的返回結果是第一種情況的真實結果。如果沒有匹配的結果值,則返回結果為ELSE後的結果,如果沒有ELSE 部分,則返回值為 NULL。



sql> SELECT CASE 1 WHEN 1 THEN 'one'



-> WHEN 2 THEN 'two' ELSE 'more' END;



-> 'one'



sql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;



-> 'true'



sql> SELECT CASE BINARY 'B'



-> WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;



-> NULL


一個CASE表達式的默認返回值類型是任何返回值的相容集合類型,但具體情況視其所在語境而定。如果用在字元串語境中,則返回結果味字元串。如果用在數字語境中,則返回結果為十進制值、實值或整數值。



IF(expr1,expr2,expr3)


如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),則 IF()的返回值為expr2; 否則返回值則為 expr3。IF() 的返回值為數字值或字元串值,具體情況視其所在語境而定。



sql> SELECT IF(1>2,2,3);



-> 3


sql> SELECT IF(1<2,'yes ','no');



-> 'yes'



sql> SELECT IF(STRCMP('test','test1'),'no','yes');



-> 'no'



如果expr2 或expr3中只有一個明確是 NULL,則IF() 函數的結果類型 為非NULL表達式的結果類型。



expr1 作為一個整數值進行計算,就是說,假如你正在驗證浮點值或字元串值, 那麼應該使用比較運算進行檢驗。



sql> SELECT IF(0.1,1,0);


-> 0



sql> SELECT IF(0.1<>0,1,0);



-> 1



在所示的第一個例子中,IF(0.1)的返回值為0,原因是 0.1 被轉化為整數值,從而引起一個對 IF(0)的檢驗。這或許不是你想要的情況。在第二個例子中,比較檢驗了原始浮點值,目的是為了了解是否其為非零值。比較結果使用整數。



IF() (這一點在其被儲存到臨時表時很重要 ) 的默認返回值類型按照以下方式計算:



表達式
返回值



expr2 或expr3 返回值為一個字元串。


字元串



expr2 或expr3 返回值為一個浮點值。


浮點


expr2 或 expr3 返回值為一個整數。


整數假如expr2 和expr3 都是字元串,且其中任何一個字元串區分大小寫,則返回結果是區分大小寫。


http://blog.knowsky.com/


IFNULL(expr1,expr2)


假如expr1 不為 NULL,則 IFNULL() 的返回值為 expr1; 否則其返回值為 expr2。IFNULL()的返回值是數字或是字元串,具體情況取決於其所使用的語境。


sql> SELECT IFNULL(1,0);



-> 1



sql> SELECT IFNULL(NULL,10);



-> 10



sql> SELECT IFNULL(1/0,10);



-> 10



sql> SELECT IFNULL(1/0,'yes');



-> 'yes'



IFNULL(expr1,expr2)的默認結果值為兩個表達式中更加「通用」的一個,順序為STRING、 REAL或 INTEGER。假設一個基於表達式的表的情況, 或MySQL必須在內存儲器中儲存一個臨時表中IFNULL()的返回值:


CREATE TABLE tmp SELECT IFNULL(1,'test') AS test;


在這個例子中,測試列的類型為 CHAR(4)。


NULLIF(expr1,expr2)


如果expr1 = expr2 成立,那麼返回值為NULL,否則返回值為 expr1。這和CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END相同。


sql> SELECT NULLIF(1,1);



-> NULL



sql> SELECT NULLIF(1,2);


-> 1



注意,如果參數不相等,則 SQL 兩次求得的值為 expr1

Ⅷ sql server if 語句

好像沒想有比case更好的用法了,為什麼要使用if來判斷呢?

其實建議lz避免使用這類MS方言sql,執行條件判斷遠比集合操作要慢。而且可能會出現移植方面的問題,每多用一個case判斷都可能對將來的維護造成一定的影響。

推薦。
建立一個參照表 DepartInfo,將對應中文解釋等相關信息放入表中與Employees表連接查詢。

Ⅸ 如何在sqlserver中 的if else

跟程序中使用差不多,if,else if,else,只不過在sqlserver中,{}使用begin和end代替,裡面嵌套什麼的,都跟程序中寫的差不多,簡單實例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

declare @a int
set @a=1
if @a<0
begin
select '小於0'
end
else if @a=0
begin
select '等於0'
end
else
begin
if @a>0 and @a<1
begin
select '大於0小於1'
end
else
begin
select '大於1'
end
end

在簡單看看程序代碼:
int a=1;

if(a<0)
{
輸出小於0;
}
else if(a==0)
{
輸出等於0;
}
else
{
if(a>0&&a<1)
{
輸出大於0小於1;
}
else
{
輸出大於1
}
}

Ⅹ SQL中如何使用IF語句

SQL中的if語句與偽代碼的寫法很相似,即:

IF (條件) then
執行語句體
END IF;

舉例:
begin
if 1 > 0 then
dbms_output.put_line('1>0');
end if;
end;

熱點內容
python安裝後怎麼打開 發布:2025-01-10 11:08:35 瀏覽:870
phpjava架構 發布:2025-01-10 10:56:06 瀏覽:383
python二維排序 發布:2025-01-10 10:56:00 瀏覽:607
南水北調怎麼配置 發布:2025-01-10 10:55:27 瀏覽:121
廣數980系統參數密碼是多少 發布:2025-01-10 10:55:25 瀏覽:577
androidhtml字體 發布:2025-01-10 10:55:01 瀏覽:787
資料庫連接工廠模式 發布:2025-01-10 10:51:00 瀏覽:487
mac文件夾路徑設置 發布:2025-01-10 10:48:12 瀏覽:803
shell腳本自動密碼 發布:2025-01-10 10:46:29 瀏覽:766
安卓手機怎麼切兩個屏 發布:2025-01-10 10:33:51 瀏覽:684