我有一個名爲Users
的表,其中有一個名爲Limit
的列,其中包含整數值。每個用戶都有一個限制,但非註冊用戶的默認限制爲1.SQL Server ISNULL/Coalesce仍然返回空列表
我想運行一個簡單的查詢,告訴我如果用戶已註冊的限制,或者如果他們未註冊,則默認爲1用戶,但是當我運行無論是ISNULL
或Coalesce
查詢書面如下:
SELECT coalesce(Limit,1) AS limit
FROM User
WHERE userID = 'testUser'
查詢將正常工作,如果我對現有用戶的查詢,但如果我嘗試一個非註冊用戶將返回一個空列表[它應該返回值爲1的單行]。
使用ISNULL
而不是coalesce會產生相同的結果。我找到的每個例子ISNULL
和coalesce都是這樣看的。我錯過了什麼?
分享表結構和樣本數據。我猜你的查詢沒有爲非註冊用戶返回任何行,所以一切正常,因爲它應該 – lad2025
然後,在用戶表中不存在用戶聲音。有問題的用戶ID的簡單'SELECT *'返回什麼? –
用戶表中不存在未註冊的用戶。具體來說,我會使用他們的IP作爲用戶ID [這將被存儲在另一個表中用於其他目的] – ConnorU