|
我正在运行一个非常简单的查询,但是对于某些结果,一个字段中的值为空。如果该值为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,则获取第三个,依此类推… |
|