小编And*_*y M的帖子

我可以在一个数据库中创建多少个存储过程?

我想找出我们可以在单个数据库中创建的最大存储过程数.

sql-server sql-server-2008

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

确保为集合定义了一个且仅有一个默认值

我有一个与地址表有一对多关系的客户表.我想约束数据库,以便具有地址的客户始终拥有一个(并且只有一个)默认地址.

我可以很容易地添加一个约束来确保每个客户只有一个默认地址.然而,我正在努力解决如何应用约束以确保地址始终标记为默认值.

总结一下:

  • 客户无需拥有任何地址.
  • 如果客户有地址,则必须有默认地址.
  • 每个客户必须只有一个默认地址.

以下是问题和一些"单元"测试的示例.我正在使用链接表来加入客户和地址.

CREATE TABLE Customer
(
    Id INT PRIMARY KEY,
    Name VARCHAR(100) NOT NULL
)

CREATE TABLE [Address]
(
    Id INT PRIMARY KEY,
    Address VARCHAR(500) NOT NULL
)

CREATE TABLE CustAddress
(
    CustomerId INT,
    AddressId INT,
    [Default] BIT NOT NULL,
    FOREIGN KEY (CustomerId) REFERENCES Customer(Id),
    FOREIGN KEY (AddressId) REFERENCES [Address](Id)
)

INSERT INTO Customer VALUES (1, 'Mr Greedy')

INSERT INTO [Address] VALUES (1, 'Roly-Poly House, Fatland')
INSERT INTO [Address] VALUES (2, 'Giant Cottage, …
Run Code Online (Sandbox Code Playgroud)

sql-server

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

返回列的前n个字母

我知道MySQL可以选择一定长度的查询.

MySQL只能输出单词中的前10个字母吗?

表格示例

mysql_query(SELECT LEFT(col,10),some2,some3 FROM someTable);
Run Code Online (Sandbox Code Playgroud)

col我为例

'TextForExampleLongerThanTen'
'Text' 
'SHORTER'
'LONGERAGAINTHANTEN'
Run Code Online (Sandbox Code Playgroud)

我想要输出所有这些,但只有前10个符号

mysql sql database

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

SQL查询计数频率

我有一张桌子,里面有条目

id     keywords
1      cat, dog, man, mouse
2      man, pen, pencil, eraser
3      dog, man, friends
4      dog, leash,......
Run Code Online (Sandbox Code Playgroud)

我想做一张像桌子的东西

id  cat  dog  man  mouse  pen  pencil  eraser  friends  leash ......
1   1    1    1    1      0    0       0       0        0
2   0    0    1    0      1    1       1       0        0
3   0    1    1    0      0    0       0       1        0
Run Code Online (Sandbox Code Playgroud)

等等.

sql t-sql sql-server pivot

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

SQL WHERE查询日期范围

在我的表中,我有118条记录细节项目.我关注的两个字段是startdate和enddate.

我需要从这个视图中生成一个报告,该报告显示哪些项目在以下日期范围之间"活跃":

01/01/2011 - 01/12/2011

我尝试过以下WHERE clase:

WHERE startdate BETWEEN '01/04/2011' AND '01/12/2011' 
OR enddate BETWEEN '01/04/2011' AND '01/12/2011'
OR startdate <= '01/04/2011' AND enddate >= '01/12/2011'
Run Code Online (Sandbox Code Playgroud)

什么通过似乎不正确,只显示了一些记录,并且我知道的事实应该显示的很多,例如一个项目的开始日期为20/07/2011,结束日期为21/11 /运行WHERE查询时,2011年消失.

任何人都可以看到此WHERE查询的错误

在此输入图像描述

sql sql-server syntax where-clause reporting-services

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

Date_Sub(NOW)错误

我收到错误

'NOW'不是公认的内置函数名称.

SQL存储过程:

SELECT * FROM BlogPost WHERE BlogDate <= DATE_SUB(NOW(), INTERVAL 1 MONTH);
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

抓住每组中最高值的行?

我的数据看起来像这样:

Table
Group: "A" , Color: "Blue", Count: "400"
Group: "A" , Color: "Green", Count: "3"
Group: "A" , Color: "Yellow", Count: "6"
Group: "A" , Color: "Red", Count: "1"
Group: "B" , Color: "Purple", Count: "243"
Group: "B" , Color: "Green", Count: "2"
Group: "B" , Color: "Yellow", Count: "7"
Run Code Online (Sandbox Code Playgroud)

如何查询此数据以获得最受欢迎(按计数)颜色的每个组.所以结果看起来像这样:

Result
Group: "A", Color: "Blue"
Group: "B", Color: "Purple"
Run Code Online (Sandbox Code Playgroud)

sql greatest-n-per-group

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

如何使用其他两个表中的数据填充新表?

我有一个需要更改的数据库。原始数据库由3个表组成。现在需要再扩展一张表。

新表的数据来自原数据库的两个表。我可以创建表,但无法用数据填充它。原始表是:

create table Accommodatie
(plaatscode       varchar(3)  not null,
 accommodatienr   numeric(3)  not null,
 accommodatiename varchar(25) not null,
 adres            varchar(25) not null,
 plaatsnaam       varchar(20) not null,
 land             varchar(20) not null,
 email            varchar(30) null,
 internet         varchar(30) null,
 contactpersoon   varchar(25) null,
 primary key (plaatscode, accommodatienr));

create table Vervoer
(vervoercode    numeric(5)   not null,
 plaatscode     varchar(3)   not null,
 stedenadviseur varchar(20)  not null,
 vervoersoort   varchar(12)  not null,
 maatschappij   varchar(15)  not null,
 omschrijving   varchar(50)  not null,
 overstap       varchar(30)  null,
 primary key (vervoercode));

create table Vervoerprijs
(vervoercode  numeric(5) …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

批处理if语句不起作用

以下代码无效.无论我输入什么只是返回错误,然后返回Retry.

@echo off

:maths
set /p Mathsa="first number? "
echo your first number is %Mathsa%

:retry

set /p Mathso="operator?(+-*/) "
if "%Mathso%" ==* GOTO run
if "%Mathso%" ==/ GOTO run
if "%Mathso%" ==+ GOTO run
if "%Mathso%" ==- GOTO run
echo Error, wrong operator. & goto retry

:run
set /p Mathsb="Second Number? "
set /a Mathsans=%Mathsa%%Mathsp%%Mathsb%
echo %Mathsans%
pause
Run Code Online (Sandbox Code Playgroud)

我完全不知道为什么会这样做.这是一个学校项目,你可以给予任何帮助,将不胜感激!

batch-file

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

通过查询获得最长连胜纪录

我有一张如下表:

id     homeTeam    awayTeam   homeScore    awayScore
1         t1          t2          3            2
2         t3          t7          0            1
.          .           .          .            .
.          .           .          .            .
.          .           .          .            .
Run Code Online (Sandbox Code Playgroud)

这是一个足球比赛的结果来自一个loocal联赛.我想获得"最长连胜","最长连败"和........只需要一个查询.我环顾四周找到了oracle版本,但我找不到怎么做?PS:我有mysql数据库.提前致谢

mysql sql gaps-and-islands

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