标签: sql

在Microsoft SQL Server 2005中模拟group_concat MySQL函数?

我正在尝试将基于MySQL的应用程序迁移到Microsoft SQL Server 2005(不是选择,而是生活).

在原始应用程序中,我们几乎完全使用符合ANSI-SQL的语句,但有一个重要的例外 - 我们group_concat经常使用MySQL的函数.

group_concat顺便说一下,这样做:给出一张表,比如说,员工姓名和项目......

SELECT empName, projID FROM project_members;
Run Code Online (Sandbox Code Playgroud)

收益:

ANDY   |  A100
ANDY   |  B391
ANDY   |  X010
TOM    |  A100
TOM    |  A510
Run Code Online (Sandbox Code Playgroud)

...这是你用group_concat得到的:

SELECT 
    empName, group_concat(projID SEPARATOR ' / ') 
FROM 
    project_members 
GROUP BY 
    empName;
Run Code Online (Sandbox Code Playgroud)

收益:

ANDY   |  A100 / B391 / X010
TOM    |  A100 / A510
Run Code Online (Sandbox Code Playgroud)

所以我想知道的是:是否有可能在SQL Server中编写用户定义的函数来模拟其功能group_concat

我几乎没有使用UDF,存储过程或类似的东西的经验,只是直接的SQL,所以请错误地说太多的解释:)

sql sql-server sql-server-2005 string-aggregation

342
推荐指数
9
解决办法
17万
查看次数

VARCHAR和CHAR有什么区别?

MySQL中的VARCHAR和CHAR有什么区别?

我正在尝试存储MD5哈希值.

mysql sql

340
推荐指数
11
解决办法
59万
查看次数

如何避免SQL中的"除以零"错误?

我有这个错误消息:

Msg 8134,Level 16,State 1,Line 1遇到零误差.

编写SQL代码的最佳方法是什么,以便我再也不会看到此错误消息?

我可以做以下任何一种情况:

  • 添加一个where子句,使我的除数永远不为零

要么

  • 我可以添加一个case语句,以便对零进行特殊处理.

是使用NULLIF条款的最佳方式吗?

有没有更好的方法,或者如何实施?

sql sql-server sql-server-2005 sql-server-2008

339
推荐指数
9
解决办法
76万
查看次数

MySQL错误:没有密钥长度的密钥规范

我有一个主键是一个varchar(255)的表.出现了一些情况,其中255个字符是不够的.我尝试将字段更改为文本,但是我收到以下错误:

BLOB/TEXT column 'message_id' used in key specification without a key length
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

编辑:我还应该指出这个表有一个包含多列的复合主键.

mysql sql mysql-error-1170

335
推荐指数
7
解决办法
34万
查看次数

334
推荐指数
8
解决办法
65万
查看次数

使用Entity Framework保存对SQL Server数据库的更改时,一个或多个实体的验证失败

我想保存我的编辑到数据库,我在ASP.NET MVC 3/C#中使用实体框架代码优先,但我收到错误.在我的Event类中,我有DateTime和TimeSpan数据类型,但在我的数据库中,我分别有日期和时间.这可能是原因吗?在保存对数据库的更改之前,如何在代码中转换为适当的数据类型.

public class Event
{
    public int EventId { get; set; }
    public int CategoryId { get; set; }
    public int PlaceId { get; set; }
    public string Title { get; set; }
    public decimal Price { get; set; }
    public DateTime EventDate { get; set; }
    public TimeSpan StartTime { get; set; }
    public TimeSpan EndTime { get; set; }
    public string Description { get; set; }
    public string EventPlaceUrl { get; set; }
    public Category Category …
Run Code Online (Sandbox Code Playgroud)

c# sql asp.net-mvc entity-framework code-first

333
推荐指数
6
解决办法
31万
查看次数

URL的最佳数据库字段类型

我需要在MySQL表中存储一个url.定义一个包含未确定长度的URL的字段的最佳做法是什么?

mysql sql database

332
推荐指数
8
解决办法
22万
查看次数

如何使用GROUP BY来连接MySQL中的字符串?

基本上问题是如何从中得到:

foo_id   foo_name
1        A
1        B
2        C

对此:

foo_id   foo_name
1        A B
2        C

mysql sql string aggregate concatenation

331
推荐指数
6
解决办法
24万
查看次数

如何获取查询执行计划?

在Microsoft SQL Server中,如何获取查询/存储过程的查询执行计划?

sql t-sql sql-server performance sql-execution-plan

331
推荐指数
10
解决办法
40万
查看次数

视图是否比简单查询更快?

是一个

select *  from myView
Run Code Online (Sandbox Code Playgroud)

比查询本身更快地创建视图(为了拥有相同的resultSet):

select * from ([query to create same resultSet as myView])
Run Code Online (Sandbox Code Playgroud)

对于我来说,如果视图使用某种缓存使其比简单查询更快,那么我并不完全清楚.

sql sql-server performance

330
推荐指数
7
解决办法
20万
查看次数