回答

收藏

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

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

我正在运行一个非常简单的查询,但是对于某些结果,一个字段中的值为空。如果该值为null,如何将其设置为“字符串”?! z  W* u6 ?5 K. [7 n0 y, `4 `1 x, t% ]
就像是; z$ u1 f2 D& ?4 A1 X
SELECT RegName,# v' Q7 f8 N7 u' T: F% c4 X
    RegEmail,
: j- \4 S* a# a    RegPhone,
, T' H4 p9 B. p' {# `9 n5 a    RegOrg,1 H9 f6 M8 w, S  q2 R: r
    RegCountry,! x* k$ L, q' Q3 _/ S" e
    DateReg,( x6 |' _' Y% H7 Y( l0 ?5 ]
    (Website IS NULL? 'no website' : Website) AS WebSite3 H1 [2 C1 u, }! n+ K& {
FROM RegTakePart
7 [! C/ G2 x& M, lWHERE Reject IS NULL
8 P$ I3 N, t! K" {9 d/ F: \$ H它将在sql server 2005上运行! W3 y3 ?" _8 N8 o5 t- e3 R0 X
谢谢
4 {3 b- Q+ B$ V7 _9 ~                ' n2 w* p1 p2 r$ \( p1 D, Q' y6 }4 Q3 p
解决方案:
& S1 K+ N$ H- v" Q9 I                7 B5 e" V$ Q% P+ ~
- y7 `8 x/ U( w3 w
6 C- G+ G0 m% ~/ d# l7 F, v# F
                使用以下内容:
$ I$ h/ a: W3 Q- Y- OSELECT RegName,7 Y  }3 D" c$ M5 i- ~+ \! T
       RegEmail,6 ^  C* D) o. g% u
       RegPhone,* @- q( f4 w/ V1 W# l2 O
       RegOrg,# p" R, W1 y- m3 `$ W
       RegCountry,
4 ]: R7 o3 B* _/ C- E4 X       DateReg,
/ X$ R! C% O- p' Z4 b% V) S# }       ISNULL(Website,'no website')  AS WebSite , O0 S  o# Z6 W3 ~9 O4 T. z) L
FROM   RegTakePart
; f; A3 T+ r* A# q9 zWHERE  Reject IS NULL( @' p/ d8 {6 l
或@Lieven指出:0 Q. }: ]1 u' s# Y5 J$ {/ ]7 E: ^
SELECT RegName,
6 v3 _3 G; X6 s- o       RegEmail,1 n+ @- F6 n& E4 E
       RegPhone,
" K: |6 g3 Q6 N+ h0 \9 ]; Z% C$ N       RegOrg,' T  _  N6 f# c/ N  n5 u* n$ c
       RegCountry,
, ?8 L! @6 h! c1 `/ k/ l: g' u; z/ s       DateReg,
: {" i+ s' y. o- F* O; m6 ^) C3 H       COALESCE(Website,'no website')  AS WebSite ' A3 B( P6 N  u& r  P
FROM   RegTakePart
# g# h1 R( S3 t5 R" O0 |WHERE  Reject IS NULL0 y" S& a5 G) d; K
COALESCE的动态之处在于您可以定义更多的参数,因此,如果第一个为null,则获取第二个参数,如果第二个为null,则获取第三个,依此类推…
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则