SQL Server:如何使用逗号分隔字符串来分隔字符串
技术问答
236 人阅读
|
0 人回复
|
2023-09-13
|
我需要在数据库中填充纬度和经度列,但是原始信息存储为单个字符串
" |% g( ^. D- v8 Y例如。7 w. {2 n' _: J& r! \
UDFChar1 = 41.243223,-8.183913
! }9 h( ]8 U ~) i% _1 ~! y1 F我猜想TRIM命令在这里很有用,但是我不知道如何告诉它每半个部分都精确地停在逗号上。
( T& C7 p! V) s1 P' h2 l* F S我希望能够提出一个简单的UPDATE查询,如下所示:7 \# a6 B* o/ X. k' y: \
UPDATE Asset8 J t& X( b3 [ h* p) l
SET Lattitude = (SELECT LTRIM(UDFChar1)),* C5 f8 v2 W! U& Y. Z+ U/ s' X$ o
Longitude = (SELECT RTRIM(UDFChar1))4 j( U @* a' Z, k( U
但是显然在LTRIM和RTRIM部分中需要做一些额外的工作,因此我只选择数据,但不包括UDFChar1中的逗号。* e( p2 _8 @% H
关于如何实现这一目标的任何想法?
- K1 h- \* \7 m+ u) |: ?
9 m, O( Y( m- C& W5 d解决方案:
: w7 J( Q! H! W5 o) C( n
( R E) T$ @: [) d2 s& f
# D0 F) X2 p: W g+ G7 I
; ]8 y) ?- b' q! h( O9 \7 G 请试试:+ {$ P9 V- I& {, X3 E( I
left(Col, charindex(',', Col)-1)8 N- L+ J5 Y5 E" B2 w, e
和
1 l0 U, }! h3 z& d3 K+ lright(Col, len(Col)-charindex(',', Col))
+ r, W& x& L i5 g样本" o9 ^( Q7 d% ^- S( z+ H9 G( r
SELECT N6 D/ X. o* T! {0 h! x3 [! {; d* D, B
LEFT(COL, CHARINDEX(',', Col)-1) Lattitude,
$ z9 [6 _! E' f4 m6 [ RIGHT(COL, LEN(COL)-CHARINDEX(',', Col)) Longitude& g. _1 U1 {1 f2 c4 w6 p
FROM(
) [4 p) q; f k; F SELECT '41.243223,-8.183913' Col
5 o2 L$ }4 B0 J: ?7 r$ m)x |
|
|
|
|
|