从特定位置选择一个字符串 - T-SQl

时间:2013-04-01 18:09:01

标签: sql sql-server sql-server-2008 tsql

假设我的表中有以下记录。

4 - Mar 1 thru Apr 11
13 - Dec 01 thru Dec 31

我想选择字符串,以便输出

Mar 1 thru Apr 11
Dec 01 thru Dec 31

我该怎么做?

谢谢

3 个答案:

答案 0 :(得分:1)

我可以使用:

CHARINDEX ( expressionToFind ,expressionToSearch [ , start_location ] )

参见文档:http://msdn.microsoft.com/en-us/library/ms186323.aspx

所以,这将是:

SELECT SUBSTRING([*FieldName*], CHARINDEX('-', [*FieldName*])+2, 252) FROM [*Table*]

252是字符数,这是nvarchar字段的默认长度。如果需要,可以增加或减少此数字。

我将+2删除-(短划线和空格)。

答案 1 :(得分:1)

您有很多选择,我会将 SELECT SUBSTR LEN 子句一起使用,(请参阅此页:{{3} })

数据:
4月 - 3月1日至4月11日 13 - 12月1日至12月31日
SELECT SUBSTR(your-field,4,TRIM(LEN(your-field)-4))FROM your-table;

输出:
3月1日至4月11日 12月1日至12月31日

注意
- SUBSTR:返回参数的一部分
- LEN:返回论证的长度
- TRIM:返回没有空格的长度

答案 2 :(得分:0)

SELECT REPLACE((SUBSTRING('4 - Mar 1 thru Apr 11', CHARINDEX(' - ', '4 - Mar 1 thru Apr 11'), LEN('4 - Mar 1 thru Apr 11'))),' - ','')

这也有效,

我现在会检查你的选择。

感谢你们的帮助。