Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL中带分隔符的子字符串_Sql_Sql Server - Fatal编程技术网

SQL中带分隔符的子字符串

SQL中带分隔符的子字符串,sql,sql-server,Sql,Sql Server,我试图返回以下的子字符串,它是逗号分隔的[只有一个逗号] City-City-City, State-State-State 有时它只是一个城市和一个州,有时它不止一个[或两个] 基本上,我只需要返回状态的首字母,并传递逗号。 最好的方法是什么?我正在研究子字符串函数,但这似乎没有那么聪明。我发现了一个拆分函数,但它看起来有些过分,我不喜欢使用我不懂的代码 例: 输出: OH-KY-IN OH TX 谢谢你的回答;多亏了索纳姆的出发点,我才明白这一点。 这是我得到的。我还没有调查过,但它似乎

我试图返回以下的子字符串,它是逗号分隔的[只有一个逗号]

City-City-City, State-State-State
有时它只是一个城市和一个州,有时它不止一个[或两个]

基本上,我只需要返回状态的首字母,并传递逗号。 最好的方法是什么?我正在研究子字符串函数,但这似乎没有那么聪明。我发现了一个拆分函数,但它看起来有些过分,我不喜欢使用我不懂的代码

例:

输出:

OH-KY-IN
OH
TX
谢谢你的回答;多亏了索纳姆的出发点,我才明白这一点。 这是我得到的。我还没有调查过,但它似乎返回了正确的东西


从CBSAMasterList中选择子字符串(CBSAName,charindex(',',,CBSAName)+1,LEN(CBSAName))

您能向我们展示数据集的预期结果吗?感谢编辑BlueFoet。忘了那样把它包起来。嘿,索纳姆!谢谢你再次帮助我。使用charindex(',',','Abilene,TX'),我如何。。。搜索并在我的5000多张桌子上进行操作。现在,我只回来了。我可以把SELECT语句放在charindex或substring中吗?你到底在寻找什么值?逗号后面的任何东西。我正在对6000个条目进行查询,只关心它们所处的状态,我知道它位于任何逗号之后。在这种情况下,我们可以为substring函数指定更大的值,以便它可以选择逗号之后的所有内容。选择substring('Cincinnati-Middletown,OH-KY-IN',charindex(',','Cincinnati-Middletown,OH-KY-IN')+2300)这里我已经传递了300作为substring函数的第二个参数,这意味着它将在','之后拾取300个字符
select substring('Abilene, TX',charindex(',','Abilene, TX')+2,2)
select substring('Abilene, TX',charindex(',','Abilene, TX')+2,2)