回答

收藏

值为null时在查询中设置默认值

技术问答 技术问答 290 人阅读 | 0 人回复 | 2023-09-14

我正在运行一个非常简单的查询,但是对于某些结果,一个字段中的值为空。如果该值为null,如何将其设置为“字符串”?
& I/ Q2 M  A" \, y$ ]% ^: B' t" K就像是
. v; f  l5 _% X$ d# O& U2 X0 iSELECT RegName,
* p2 O6 e$ g7 M9 {' \    RegEmail,1 q% N: z: K4 a: q$ G- B3 V
    RegPhone,+ j, T& @0 T, v8 ~
    RegOrg,$ @( f" b$ A% f  s2 ~8 w9 s- }
    RegCountry,+ M7 x1 |! _; A6 U" o% O
    DateReg,: k6 Y2 Q+ @) a( P
    (Website IS NULL? 'no website' : Website) AS WebSite
' f) d2 @1 t# k, g: A  LFROM RegTakePart
, L0 S2 a9 Q3 |8 h- G( K+ [WHERE Reject IS NULL' K" ]  a& Q: i& U8 ^) p. N: R
它将在sql server 2005上运行
  Y$ j! y( _' O: n谢谢
) c6 u% W3 O9 }/ W. K# _5 h               
* L8 n$ b5 I& R* v解决方案:, E- c0 H- N4 T8 g, [0 f5 y5 l
                * v# ^/ E  D7 E2 h

% H8 q: f% N8 l8 |# @* E7 W% G) ?1 g1 B$ b4 L
                使用以下内容:4 \# l  A/ |4 `" f5 G6 |+ N) [
SELECT RegName,6 a7 e: P# I- R$ \
       RegEmail,
* n" W( L" B5 `) I! ?' l       RegPhone,
* B* I. V: U" F1 F( n! ^+ T5 N) u       RegOrg,
% q: E: M4 r, I& w4 X       RegCountry,2 j' k& ]2 j3 W! ^$ m
       DateReg,4 d" v5 A  T) O* o% B
       ISNULL(Website,'no website')  AS WebSite ( X; q% H3 l' P3 W8 _1 K+ ]3 r. N
FROM   RegTakePart 1 h( B0 w6 r+ `5 T3 A( J
WHERE  Reject IS NULL4 B$ D, u! D; @* F0 G. m5 {0 E4 C
或@Lieven指出:
# C: s, j6 j# g. b/ @* z: @% x( hSELECT RegName,
; ^0 X/ k- S7 U7 m( C3 P) w       RegEmail,
2 ?2 l7 R4 B3 i3 }0 S       RegPhone,
$ ?  f9 x- N7 }9 O       RegOrg,
4 e" G  x* ^) e       RegCountry,% C/ l. A3 f# ?: P# G$ o/ b. p. A
       DateReg,% v/ P+ D4 U4 n  Z8 [5 A
       COALESCE(Website,'no website')  AS WebSite # {3 L$ o$ Z9 }. L2 }3 s% @" ]0 L
FROM   RegTakePart ! m$ M& B% x( L7 l6 N
WHERE  Reject IS NULL% B0 D- g0 v* V$ z  {- w& E
COALESCE的动态之处在于您可以定义更多的参数,因此,如果第一个为null,则获取第二个参数,如果第二个为null,则获取第三个,依此类推…
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则