Dio*_*tos 0 sql t-sql sql-server
我创建了以下类型:
CREATE TYPE dbo.expressions
AS TABLE
(
expression varchar(255)
);
GO
Run Code Online (Sandbox Code Playgroud)
在存储过程中,我如何使用我收到的n个类型,并且每个类型都使用带有like子句的select?
在"编程"(和伪代码)方面,将是这样的:
for each expression in expressions
rows+=select * from table where table.field LIKE '%' + expression[i] + '%'
Run Code Online (Sandbox Code Playgroud)
我总是可以从我的API多次调用SP,但我想知道这是否可行,甚至更快,在SQL方面做.
您只需从/ JOIN中选择类型的实例.假设你有类似的东西:
CREATE TYPE expressions AS TABLE (expression varchar(255));
CREATE PROCEDURE mysp(@expressions AS expressions) ...
Run Code Online (Sandbox Code Playgroud)
您可以像使用表一样使用变量:
SELECT *
FROM @expressions AS expressions
INNER JOIN yourtable ON yourtable.field LIKE '%' + expressions.expression + '%'
Run Code Online (Sandbox Code Playgroud)
以上将允许您expression在select子句中使用.否则您可以使用以下内容:
SELECT *
FROM yourtable
WHERE EXISTS (
SELECT 1
FROM @expressions AS expressions
WHERE yourtable.field LIKE '%' + expressions.expression + '%'
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38 次 |
| 最近记录: |