回答

收藏

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

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

我正在运行一个非常简单的查询,但是对于某些结果,一个字段中的值为空。如果该值为null,如何将其设置为“字符串”?
* k% E1 D( u- o7 n就像是
0 L5 H6 J+ {, j! |+ tSELECT RegName,
. M* E" J  ^1 d2 U8 u4 [- q$ Z    RegEmail,& M/ K& }: f( u$ v; J4 |% x
    RegPhone,- J' g; K; I: U) _- q2 e7 X
    RegOrg,* ?9 L0 l- D2 m" o( r
    RegCountry,4 ]7 `8 V  r; Z, e3 y: t
    DateReg,, j* ?' D5 s8 `1 T% S8 q
    (Website IS NULL? 'no website' : Website) AS WebSite
3 t0 X. C3 U. m- t: TFROM RegTakePart  p5 s' @& a( X: C% i3 E$ j
WHERE Reject IS NULL% a) R7 v5 Q) N& P/ l$ b
它将在sql server 2005上运行
# L0 U" w4 K/ t% s: N. @谢谢
2 f" g6 Y0 o6 H$ A, U                4 [0 c' Q$ q5 W" K3 n. l( F7 ^' d
解决方案:
1 _, [' P' w$ j! G$ Y; m) \                , r* m8 r3 ~. Q+ C5 r
; T: @5 y$ O& r( g$ b5 j4 S! H
0 j4 k& n# i  J
                使用以下内容:
+ a1 z3 L- n+ ^9 d4 |SELECT RegName,) K1 _8 d4 O  u/ B
       RegEmail,2 D" q& D# g4 F7 |. t! ^! m
       RegPhone,
2 i; z3 y$ o  U, T4 F5 d% ^       RegOrg,+ a5 @; i) [. z9 }% @' t$ m
       RegCountry,
: n9 }" \( Q: B+ \0 g       DateReg,* E: ?3 h! i1 a$ @3 n. d. W0 |5 v' W
       ISNULL(Website,'no website')  AS WebSite   ?) s9 l7 G4 N! `$ `, M
FROM   RegTakePart 1 }5 m2 }( `3 j; q6 q# k  {9 Q
WHERE  Reject IS NULL+ C* x/ p. [- n
或@Lieven指出:
) I' `$ \8 s+ _/ R1 U- PSELECT RegName,
  f, }2 p+ b% C( I4 m" y       RegEmail,
7 Z! N. c5 z) E       RegPhone,& N) R2 @$ g- D% z" B
       RegOrg,
' {+ A/ d8 F" w; i3 |( p       RegCountry,* }$ \; V5 D# O8 \
       DateReg,6 V1 E7 ^& \1 e6 @) Z
       COALESCE(Website,'no website')  AS WebSite
. L; f  ?: k& g6 \$ d, kFROM   RegTakePart $ n5 z) D9 B* U3 d% X% g
WHERE  Reject IS NULL8 N7 b3 c- n( Z: W
COALESCE的动态之处在于您可以定义更多的参数,因此,如果第一个为null,则获取第二个参数,如果第二个为null,则获取第三个,依此类推…
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则