小编Dio*_*tos的帖子

使用不存在的地方更新语句

我正在尝试执行以下操作:将status列设置为1第二个表中第一个表(变量)中的行不存在时。

我尝试了这个:

update @table1
set status=1
where  NOT EXISTS (select top 1 1 from @table2 where @table1.foo=@table2.foo)
Run Code Online (Sandbox Code Playgroud)

但这甚至无法编译,无法@table1在Where语句中识别。

必须声明标量变量“ @ table1”。

有什么线索吗?

sql sql-server

1
推荐指数
1
解决办法
82
查看次数

根据不同的计数设置值

假设我有以下数据tbl

Label | Color
X     | color1
X     | color1
Y     | color1
Y     | color2
Run Code Online (Sandbox Code Playgroud)

样本输出应该是:

X | color1
Y | misc
Run Code Online (Sandbox Code Playgroud)

所以基本上,如果相应的标签只有一种颜色,我希望它是那种类型,否则我希望它说misc.

我做了以下没有按我想要的工作,下一步是将 a 应用casecount

select label,count(distinct color) from @tbl
group by label,color
Run Code Online (Sandbox Code Playgroud)

sql sql-server

1
推荐指数
1
解决办法
51
查看次数

从n到n表返回n列

有了这个配置,关系模型明智:

A --- * C * --- B
Run Code Online (Sandbox Code Playgroud)

C因此是a和之间的n到n表b.

鉴于这C有以下领域:aID, bID, cValue

B具有以下内容:bID, bName

我怎样才能选择所有的条目An所有列B,与应用aID

例如,select将返回以下列

aID - bName1 - bName2 - bName3
1   - cValue1 - cvalue2 - cvalue3
2   - cValue4 - cvalue5 - cvalue6
Run Code Online (Sandbox Code Playgroud)

由于A中的不同条目可能与B中的所有条目匹配,也可能不匹配,因此某些列可以为空.

sql sql-server

0
推荐指数
1
解决办法
38
查看次数

LIKE子句应用于存储过程中的DB类型

我创建了以下类型:

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方面做.

sql t-sql sql-server

0
推荐指数
1
解决办法
38
查看次数

标签 统计

sql ×4

sql-server ×4

t-sql ×1