关于自定义函数使用列参数的问题(高手请进)
我有一个表 table1(产品) 其中有一个列 color , 由于颜色有多种可能出现 如红+黑+白 这样的情况。 标准颜色的组合中间用+间隔。
另外有一个表table2 保存有标准的颜色,只有一列 Standcolor 保存有所有的标准颜色。
我现在想找出所有的包含有红色的产品 ,不能使用like '%红% ' 这种情况,因为我不希望出现粉红等的颜色。
所以我建一个函数,先把颜色根据标准分开如
F_split(@s varchar(100))
return table (color varchar(10))
........
问题是我使用的时候不知道怎样写这条语句
如: select * from table1 where exists (select * from F_split(table1.color) where color = '红 ' )
这种语句都出错,不知应该怎么写或者有更好的方法。
------解决方案--------------------沒有必要使用那個函數,可以直接用一句SQL來實現。
--方法一:
Select * From table1 Where CharIndex(N '+红+ ', '+ ' + color + '+ ') > 0
--方法二:
Select * From table1 Where '+ ' + color + '+ ' Like N '%+红+% '