假設我在表格中有以下記錄。從特定位置選擇一個字符串 - T-SQl
4 - Mar 1 thru Apr 11
13 - Dec 01 thru Dec 31
我想選擇的路線,使輸出會是這樣,
Mar 1 thru Apr 11
Dec 01 thru Dec 31
我怎麼能這樣做?
謝謝
假設我在表格中有以下記錄。從特定位置選擇一個字符串 - T-SQl
4 - Mar 1 thru Apr 11
13 - Dec 01 thru Dec 31
我想選擇的路線,使輸出會是這樣,
Mar 1 thru Apr 11
Dec 01 thru Dec 31
我怎麼能這樣做?
謝謝
我可以使用:
CHARINDEX (expressionToFind ,expressionToSearch [ , start_location ])
請參閱文檔:http://msdn.microsoft.com/en-us/library/ms186323.aspx
所以,這將是:
SELECT SUBSTRING([*FieldName*], CHARINDEX('-', [*FieldName*])+2, 252) FROM [*Table*]
252
是多少C字符,這是nvarchar
字段的默認長度。如果需要增加或減少此數量。
我把+2
去掉-
(破折號和空格)。
這是有效的!非常感謝。 – 007
SELECT REPLACE((SUBSTRING('4 - Mar 1 thru Apr 11', CHARINDEX(' - ', '4 - Mar 1 thru Apr 11'), LEN('4 - Mar 1 thru Apr 11'))),' - ','')
這也適用,
我現在就看看你的選擇。
謝謝你的幫助。
你有很多選擇,我會用選擇與SUBSTR和LEN條款,(看到這個頁面:http://oreilly.com/catalog/sqlnut/chapter/ch04.html)
數據:
4 - 三月1日至4月11日
選擇SUBSTR(你的字段,4,TRIM(LEN(你的字段)-4))FROM your-table;
OUTPUT:
三月一日至4月11日
12月1日至12月31日
NOTES
- SUBSTR:參數
的收益部分 - LEN:參數
的回報lenght - TRIM:返回長度不含空格
數據是否實際上像這樣構成而不是兩個'DATETIME'字段S' – Oded
只需使用'charindex'找到連字符的索引,然後使用'substring'來提取剩餘部分 – LittleBobbyTables
是的,有一列包含上述格式的值。我希望在開始月份名稱前刪除所有內容並獲取輸出。 – 007