如何在 T-SQL 中编写 INSTR?

Nit*_*Cat 2 sql sql-server sql-server-2008

你如何用 T-SQL 编写这个?我想只显示第一个左括号后的前 2 个字符。

(INSTR(main.cat, ':',1,1),0,' ', SUBSTR(main.cat,INSTR(main.cat, '(',1,1)+1,
Run Code Online (Sandbox Code Playgroud)

INSTR(main.cat, '-',1,1)-(INSTR(main.cat, '(',1,1)+2))) 作为“条件”,

From:      T: (A1 - 7)
TO:        A1
Run Code Online (Sandbox Code Playgroud)

另外,如何更改名称字段(在一个字段中同时包含姓氏和名字)

from:   Smith, Paul
to:     Paul Smith


INSTR(emp.NAME, ',') +1, LENGTH(emp.NAME)-1)|| ' '||SUBSTR(emp.NAME, 1, INSTR(emp.NAME, ',')-1)
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 5

你用charindex()。根据您的描述:

select substring(main.cat, charindex('(', main.cat) + 1, 2)
Run Code Online (Sandbox Code Playgroud)

case如果没有括号,您可能需要使用 a来防止错误:

select (case when main.cat like '%(__%'
             then substring(main.cat, charindex('(', main.cat) + 1, 2)
        end)
Run Code Online (Sandbox Code Playgroud)