我想从该字符串中取出Tex
。
ID string
1 CN=username,OU=Tex,OU=Users,OU=Region1,DC=company,DC=com
substring(string, charindex(',', string) + 4, LEN(string))
我能够到达第一个逗号并到达Tex,但是如何删除字符串的其余部分?
谢谢。
答案 0 :(得分:1)
另一种选择是通过一些XML
Select ID
,SomeValue = Cast('<x>' + replace(string,',','</x><x>')+'</x>' as xml).value('/x[2]','varchar(max)')
From YourTable
返回
ID SomeValue
1 OU=Tex
答案 1 :(得分:0)
SQL Server中的字符串函数相当有限。这是一种方法:
select left(v2.str, charindex(',', v2.str) - 1)
from t cross apply
(values (stuff(t.str, 1, charindex(',', t.str), ''))) v1(str) cross apply
(values (stuff(v1.str, 1, charindex('=', v1.str), ''))) v2(str);
答案 2 :(得分:0)
如果您总是要在第一个OU之后寻找第一个值,则可以执行此操作。但是,如果您要查看其他OU的值,那么我将使用上面的选项之一,因为围绕它的语法可能很快就会变得非常混乱。
declare @SearchExpression varchar(max) = 'CN=username,OU=Tex,OU=Users,OU=Region1,DC=company,DC=com'
select Substring(
@SearchExpression,
charindex(',', @SearchExpression) + 4, --+4 is the lengh of first ,=OU
charindex(',', substring(@SearchExpression, (charindex(',', @SearchExpression) + 4), len(@SearchExpression))) - 1
--This second line determines how far to substring past the ,=OU by searching for everyting past the first comma then looking for the second comma
) as Answer
答案 3 :(得分:0)
这是一个有趣的人
SELECT SUBSTRING(value, 4, LEN(value)-4) FROM STRING_SPLIT(string, ',') WHERE SUBSTRING(value, 1, 3)='OU='
参考: https://docs.microsoft.com/en-us/sql/t-sql/functions/string-split-transact-sql?view=sql-server-2017
答案 4 :(得分:0)
declare @t table (String varchar(500))
insert into @t values('CN=username,OU=Tex,OU=Users,OU=Region1,DC=company,DC=com')
select SUBSTRING(String,charindex('tex',String),len('tex')) from @t
答案 5 :(得分:0)
这是我最终使用的。谢谢您的所有回答!
import React from 'react';
import ReactDOM from 'react-dom';
import Enzyme, {mount} from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import EventsGrid from '../EventsGrid';
import sampleData from './sampleData/transformedEventSample';
Enzyme.configure({adapter: new Adapter()});
describe('Tests for <EventDataGrid/>', () => {
it('sort data grid by ascending ', () => {
const wrapper = mount(<EventsGrid initialRows={sampleData}/>);
const instance = wrapper.instance();
jest.spyOn(instance, 'sortRows');
const column = 'eventTypeNameI18n';
const sortDirection = 'ASC';
wrapper.find('#EventDataGrid').at(1).prop('onGridSort')(column, sortDirection);
expect(instance.sortRows).toHaveBeenCalled();
});
it('sort data grid by descending', () => {
const wrapper = mount(<EventsGrid initialRows={sampleData}/>);
const instance = wrapper.instance();
jest.spyOn(instance, 'sortRows');
const column = 'eventTypeNameI18n';
const sortDirection = 'DESC';
wrapper.find('#EventDataGrid').at(1).prop('onGridSort')(column, sortDirection);
expect(instance.sortRows).toHaveBeenCalled();
});
});