如何从select语句中截取表名
select * from tableName where id = "1 ";
像这样一句select语句,如何才能截取到 "tableName "呢?
[解决办法]
declare @aa nvarchar(4000)
set @aa= 'select * from tableName where id = "1 "; '
select replace(substring(@aa,CHARINDEX( ' from ',@aa)+6,CHARINDEX( ' where ',@aa)-CHARINDEX( ' from ',@aa)-6), ' ', ' ')
--result
tableName
[解决办法]
declare @aa nvarchar(4000)---借用
set @aa= 'select * from tableName where id = "1 "; '
select @aa=ltrim(stuff(@aa,1,charindex( 'from ',@aa)+3, ' '))
select left(@aa,charindex( ' ',@aa)-1)
合并成一句(只考虑from,没有where也行)
select left(ltrim(stuff(@aa,1,charindex( 'from ',@aa)+3, ' ')),charindex( ' ',ltrim(stuff(@aa,1,charindex( 'from ',@aa)+3, ' ')))-1)