回答

收藏

SQL选择一行并存储在SQL变量中

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

因此,我正在编写此存储过程,而且我真的很喜欢SQL。6 D% ~9 E7 q9 [; X8 m+ _
我对你们的问题是:
5 g* W7 M0 _, T* _. j5 j( h1 I$ J我可以选择整行并将其存储在变量中吗?
" q9 Q5 a/ |1 j( a& r我知道我可以做类似的事情:
: o- _3 N( t* u( X  ^4 f7 {. N) k$ jdeclare @someInteger int
7 g4 N8 i+ s$ Q3 E* b$ Wselect @someInteger = (select someintfield from sometable where somecondition)
8 r: V0 X0 Z* i% _! u& a$ S. L6 m但是我可以从中选择整行sometable并将其存储在变量中吗?, M% P/ Z) Y% \) [5 N( _
               
) Z" X/ B- M0 z解决方案:, `) v6 j3 m! M) K* j4 g7 U0 k$ m
                , J% k; l- c2 T* h
1 h$ a4 y5 Y% j) F1 I* z2 ^
' I) f/ a6 _8 o/ O: h
                您可以将字段选择为多个变量:; b; I1 [2 X/ Y* Y# C% ]
DECLARE @A int, @B int  n& [$ F9 t% I5 x4 u
SELECT
8 b. b" y6 k1 G$ H0 S  @A = Col1,
" {+ Z8 K9 W* H0 M# J  @B = Col2
; ]. P* u1 z( h& b& xFROM SomeTable
! L( E2 V; p7 M- lWHERE ...
: Q( C5 M, w, s) o* {/ e: A3 `: m另一种可能更好的方法是使用表变量:0 \3 a; x. S  Q7 A+ ^; x
DECLARE @T TABLE (0 X. g2 C  [6 V  B$ N2 X
  A int,. y8 O6 l, L; S, M2 R( Q* s2 X
  B int/ v$ S8 l* `$ j
)  N- h# a' }3 H- T, E# X, O
INSERT INTO @T ( A, B )
' y2 i8 @7 V$ w1 X; \% v! P8 S* p2 sSELECT- u/ C2 B$ _9 [! o7 C/ r6 d- W
  Col1,! ^; v8 u# T2 v$ J5 Q
  Col2
+ }  G5 \$ v& N" Y( \. e3 EFROM SomeTable
# C: @; k% ^- GWHERE ...  M4 I# ?$ I2 Y: [& R9 i
然后,您可以像常规表一样从表变量中进行选择。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则