举例: 我现在是需要查询这字段里包含1的数据 我如果直接charindex,那么11,12也会被包含. 解决(1): select * from ( select '1,2,12,111' as str union all select '2,12,111' union all ' ) t1 where ','+str+',' like'%,1,%' 解决(2): 利用如mysql中的find_in_set办法 自己写一个自定义函数split,利用outer apply,这个比较简单,这里不做
举例: 我现在是需要查询这字段里包含1的数据 我如果直接charindex,那么11,12也会被包含. 解决(1): SELECT * FROM ( SELECT '1,2,12,111' AS str UNION ALL SELECT '2,12,111' UNION ALL SELECT '1' ) t1 WHERE ',' + str + ',' LIKE '%,1,%' 解决(2): 利用如mysql中的find_in_set办法 自己写一个自定义函数split,利用outer appl
sql server 查找包含字符串的对象 SELECT sm.object_id, OBJECT_NAME(sm.object_id) AS object_name, o.type, o.type_desc, sm.definition FROM sys.sql_modules AS sm JOIN sys.objects AS o ON sm.object_id = o.object_id where sm.definition like '%要匹配的内容%' --collate SQL_L
sql server replace的替换字符,replace的使用 select REPLACE(name,'张','') * from entity_5c7a578c05c7042958d91485_goods select REPLACE(列名,'匹配的字符',‘想换成的字符’),* from product
存储过程都写在一个指定的表中了,我们只要使用like查询就可以实现查询当前这台SQL Server中所有存储过程中包括了指定关键字的存储过程并显示出来,下面一起来看看我总结了几条命令. 例子1 代码如下 OBJECT_NAME(id),id from syscomments where id in ( select object_id(name) from dbo.sysobjects where xtype='P' ) and text like '%FieldName%' id 例子2 在S
在T-SQL中我们经常批量操作时都会对字符串进行拆分,可是SQL Server中却没有自带Split函数,所以要自己来实现了.这里将字符串分割以table形式输出 语法如下: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /* create by shuke.li 2020-9-15 */ create function [dbo].[SplitString] ( @Input nvarchar(max), --input string to
要查找某个指定的字符在字符串中出现的位置,方法比较简单,使用 len() 函数和 replace() 函数结合就可以. SELECT TOP 200 approveInfo approveInfo2, LEN(approveInfo)-LEN(REPLACE(approveInfo,';','')) AS appLen, * FROM dbo.Log_Year WHERE ISNULL(approveInfo,'')<>'' ORDER BY appLen DESC 原理:字符串的长度 减去
create table t(x int identity(1,1) primary key,v nvarchar(32));go insert into t(v) values('this is % line'),('this is 1 line'); 我们的目标是找到'this is % line' 这一行. select x,v from t where v like'%\%%' escape '\'; 第一个'%'用来匹配%前的串. 第二个'%'用来匹配串中的%. 第三个'%'用来匹配%
1. 当字段没有默认值或者约束的时候可以使用: alter table [table_name] drop column [column_name] 来删除. 当有默认值的时候应该先删除默认值,然后再删除此列,不然会报错.具体方法如下 select b.name from sysobjects b join syscolumns a on b.id = a.cdefault where a.id = object_id('表名') and a.name = '列名'”; ALTER TABLE
主键约束 SELECT tab.name AS [表名], idx.name AS [主键名称], col.name AS [主键列名] FROM sys.indexes idx JOIN sys.index_columns idxCol ON (idx.object_id = idxCol.object_id AND idx.index_id = idxCol.index_id AND idx.is_primary_k
WITH tmp AS ( SELECT indexname = a.name , tablename = c.name , indexcolumns = d.name , a.indid FROM sysindexes a JOIN sysindexkeys b ON a.id = b.id AND a.indid = b.indid JOIN sysobjects c ON b.id = c.id JOIN syscolumns d ON b.id = d.id AND b.colid =