【问题标题】:Most efficient: Cut off varchar after first space?最有效:在第一个空格后切断 varchar?
【发布时间】:2018-03-15 20:56:52
【问题描述】:

在第一个空格之后切断 varchar 的最有效方法是什么,即给定 'FIRST_STRING SECOND_STRING THIRD_STRING',它应该返回 'FIRST_STRING'?这可能会在数千行中运行 100 行。

【问题讨论】:

    标签: sql-server tsql varchar


    【解决方案1】:

    注意+' ' 这将捕获任何单个单词

    示例

    Declare @S varchar(max) = 'FIRST_STRING SECOND_STRING THIRD_STRING'
    
    Select left(@S,charindex(' ',@S+' ')-1)
    

    退货

    FIRST_STRING
    

    【讨论】:

    • 我怀疑这是肌肉记忆问题 :)
    【解决方案2】:
    declare @str nvarchar(max) = 'FIRST_STRING SECOND_STRING THIRD_STRING';
    
    select left(@str, charindex(' ', @str) - 1)
    GO
    
    | (无列名) | | :--------------- | |第一个字符串 |

    dbfiddle here

    【讨论】:

    • 如果你使用'@S'而不是'@str',你可能已经击败了@JohnCappelletti。
    猜你喜欢
    • 1970-01-01
    • 2019-03-18
    • 2019-09-25
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多