我正在尝试将基于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,所以请错误地说太多的解释:)
我有这个错误消息:
Msg 8134,Level 16,State 1,Line 1遇到零误差.
编写SQL代码的最佳方法是什么,以便我再也不会看到此错误消息?
我可以做以下任何一种情况:
要么
是使用NULLIF条款的最佳方式吗?
有没有更好的方法,或者如何实施?
我有一个主键是一个varchar(255)的表.出现了一些情况,其中255个字符是不够的.我尝试将字段更改为文本,但是我收到以下错误:
BLOB/TEXT column 'message_id' used in key specification without a key length
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
编辑:我还应该指出这个表有一个包含多列的复合主键.
Oracle中的视图和物化视图有什么区别?
我想保存我的编辑到数据库,我在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) 我需要在MySQL表中存储一个url.定义一个包含未确定长度的URL的字段的最佳做法是什么?
基本上问题是如何从中得到:
foo_id foo_name 1 A 1 B 2 C
对此:
foo_id foo_name 1 A B 2 C
在Microsoft SQL Server中,如何获取查询/存储过程的查询执行计划?
是一个
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 ×10
mysql ×4
sql-server ×4
performance ×2
aggregate ×1
asp.net-mvc ×1
c# ×1
code-first ×1
database ×1
oracle ×1
string ×1
t-sql ×1
view ×1