如何只选择那些只包含输入参数子串的行

时间:2010-01-13 16:43:35

标签: tsql

我在MSSQL中有一个包含多个列的表。它看起来如下:

COL1 | col2 | col3
------------------
HSP |满| “”
HSP |满| “UE”
HSP | min | “”
HSP | min | “PS”
CC |满| “UE”

我的选择查询有2个参数,从网络应用程序接收:

@ col2 = {full,min}
@ col3 =例如“PE + UE + STR”或“PE”或“”(一般情况下 - 不同缩写的组合或无)

我想要做的只是选择那些包含适当缩写的行。 例如如果输入是
@col2 = "full"
@col3 = "PE+UE+STR"

输出:
HSP |满| “UE”
CC |满| “UE”

如果@col3 = "",则输出为:
HSP |满| “”
HSP | min | “”

感谢您的帮助 马尔钦

2 个答案:

答案 0 :(得分:0)

现在我可能完全离开,但我记得SQL中有一个LIKE关键字。

SELECT * from table WHERE col3 LIKE pattern

其中pattern是你想要比较的。您可能需要解析参数以转换为.... WHERE col3 LIKE pattern1或col3 LIKE pattern2或者其他什么?

如果完全关闭,请发表评论。

答案 1 :(得分:0)

你想:WHERE '+' + @col3 + '+' like '%+' + col3 + '+%'