小编Yet*_*ish的帖子

SQL SELECT其中标记值为LIKE

我正在尝试制作日历服务,在该日历服务中,有事件,并且事件可以使用可搜索的元数据进行标记.

我希望能够搜索所有标签必须存在的记录(强制标记)和/或存在任何标记的位置(可选标记).

当标签值与'exact'匹配时,我设法创建了一个可以工作的查询.但我无法弄清楚如何返回标签值为LIKE'%value%'的结果.

这是我目前的实施

表和数据

CREATE TABLE Events
(
 Id INT,
 EventText VARCHAR(500)
);

CREATE TABLE EventDates
(
 Id INT,
 EventId INT,
 StartDate DATETIME,
 EndDate DATETIME,
 Archived BIT
);

CREATE TABLE Tags
(
 Id INT,
 Description VARCHAR(50)
);

CREATE TABLE EventTags
(
 EventId INT,
 TagId INT,
 Value VARCHAR(50)
);

INSERT INTO Events VALUES (1, 'Event Name 1');
INSERT INTO Events VALUES (2, 'Event Name 2');

INSERT INTO EventDates VALUES (1, 1, '2013-01-01', '2013-01-02', 0);
INSERT INTO EventDates VALUES (2, 1, …
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2008

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

JOIN ON LIKE问题SQL Server中的WHERE EXISTS

我正在尝试使用标签搜索,并且它主要使用LIKE标记匹配的例外.

我已经添加了SQLFiddle的示例代码,并在此处包含它:

表和数据

CREATE TABLE Attendees
(
 Id INT,
 Text VARCHAR(500)
);


CREATE TABLE Tags
(
 Id INT,
 Description VARCHAR(50)
);

CREATE TABLE AttendeeTags
(
 AttendeeId INT,
 TagId INT,
 Value VARCHAR(50)
);

INSERT INTO Attendees VALUES (1, 'Attendee 1');
INSERT INTO Attendees VALUES (2, 'Attendee 2');

INSERT INTO Tags VALUES (1, 'Tag Name 1');
INSERT INTO Tags VALUES (2, 'Tag Name 2');

INSERT INTO AttendeeTags VALUES (1, 1, 'Value 1');
INSERT INTO AttendeeTags VALUES (1, 1, 'Value 2'); …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

确定对象是否是任何类型的数组,并访问数组长度

我有一个带有object参数的重写方法.我确定这是否是一个数组,然后想确定它的长度:

public override bool IsValid(object value)
{
    Type type = value.GetType();
    if (type.IsArray)
    {
        return ((object[]) value).Length > 0;
    }
    else
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是如果valueint[],当我尝试强制转换时它会出错object[].有没有办法处理这个演员,所以它适用于任何类型的数组?

.net c# arrays

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

从表A中选择它加入表B中的所有数据

我有一张文件表和一张标签表.文档标有各种值.

我试图创建这些标签的搜索,并且大多数情况下它正在工作.但是,当我匹配任何标签时,我会收到额外的结果.我只想要匹配所有标签的结果.

我创建了这个来说明问题http://sqlfiddle.com/#!3/8b98e/11

表和数据:

CREATE TABLE Documents
(
 DocId INT,
 DocText VARCHAR(500)
);

CREATE TABLE Tags
(
  TagId INT,
  TagName VARCHAR(50)
);

CREATE TABLE DocumentTags
(
  DocTagId INT,
  DocId INT,
  TagId INT,
  Value VARCHAR(50)
);

INSERT INTO Documents VALUES (1, 'Document 1 Text');
INSERT INTO Documents VALUES (2, 'Document 2 Text');

INSERT INTO Tags VALUES (1, 'Tag Name 1');
INSERT INTO Tags VALUES (2, 'Tag Name 2');

INSERT INTO DocumentTags VALUES (1, 1, 1, 'Value 1');
INSERT INTO DocumentTags …
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2008

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

如何将行值连接到动态查询中的列名称

我正在开发一个允许可配置问题和答案的应用程序.目前最多可以有20个答案,但可能更少.

我的结构如下:

问题

+----+--------+--------------+-------------+
| ID | FormId | QuestionText | AnswerField |
+----+--------+--------------+-------------+
|  1 |      1 | Name         | Answer01    |
|  2 |      1 | Address      | Answer02    |
|  3 |      1 | Phone        | Answer03    |
|  4 |      1 | Email        | Answer04    |
|  5 |      2 | First Name   | Answer01    |
|  6 |      2 | Surname      | Answer02    |
+----+--------+--------------+-------------+
Run Code Online (Sandbox Code Playgroud)

答案

+----+--------+----------+------------+--------------+--------------+----------------+----------+----------+
| ID | FormId | RecordId |  Answer01 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server unpivot

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

标签 统计

sql ×4

sql-server ×2

sql-server-2008 ×2

.net ×1

arrays ×1

c# ×1

unpivot ×1