如何选择nvarchar数据类型字段的数字部分

时间:2019-07-15 08:42:35

标签: sql-server

我想选择保存在sqlserver的nvarchar()数据类型列中的数据的数字部分。 行中字符的大小不同,也许某些行的列中没有数字部分,例如,数据格式如下     / TablePhoneHome>

class MyTasklet implements Tasklet {

    @Override
    public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) {
        List<String> resources = Arrays.asList(
                "/full/path/to/resource1",
                "/full/path/to/resource2");
        chunkContext.getStepContext().getStepExecution().getJobExecution().getExecutionContext()
                .put("filesResource", resources);
        return RepeatStatus.FINISHED;
    }

}

<TablePhoneHome></TablePhoneHome>

<TablePhoneHome><Number Num="9123159834"/></TablePhoneHome>

我想从中选择电话号码:

<TablePhoneHome><Number Num="somthing"/></TablePhoneHome>

1 个答案:

答案 0 :(得分:1)

假定 ,数据类型实际上为xml(如果不是,则应将数据类型固定为xml ),您可以轻松地使用XQUERY来获取值:

SELECT YT.YourColumn.value('(/TablePhoneHome/Number/@Num)[1]','varchar(50)') AS Num
FROM YourTable YT;