回答

收藏

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
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则