我有一列字符串列,每个字符串列中包含城市、州和数字。
SPOKANE, WA 232/107
LAS VEGAS, NV 232/117
PORTLAND, OR 232/128不止于此,我想知道如何在这一列中删掉数字,只显示城市和州,或者更好地显示-even -删掉数字,使城市和州成为一个单独的列。
对于所有不同的记录,列的格式都是相同的。
谢谢!
发布于 2010-07-31 03:39:20
如果不为你做所有的工作...
城市:从位置0到第一次出现逗号- 1的列的子字符串。
状态:从第一个逗号出现后的2个位置到下一个空格位置的列的子字符串...已修剪。
请参阅:SUBSTRING()、CHARINDEX()、PATINDEX()
发布于 2010-07-31 03:42:15
要删除末尾的数字,请使用substring方法,如下所示。
@str = SUBSTRING(@str, LEN(@str)-7, 7)为了分离城市和州,你需要一些分裂函数,但是我记不住语法了,对不起。
发布于 2010-07-31 03:46:18
我已经弄清楚了,并且已经写好了SQL...然后我看到了Fosco's answer,但既然我有它,我还是把它贴出来吧:
SELECT
LEFT(yourcolumn, CHARINDEX(',', yourcolumn) - 1) AS City,
RIGHT(LEFT(yourcolumn, CHARINDEX(',', yourcolumn) + 3), 2) AS State
FROM yourtable此算法与Fosco算法的不同之处在于,此算法假设状态恰好为2个字母。如果这并不总是正确的,那么你应该使用另一个答案。
https://stackoverflow.com/questions/3374763
复制相似问题