相关疑难解决方法(0)

在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万
查看次数

为什么有人在SQL子句中使用WHERE 1 = 1 AND <conditions>?

为什么有人会WHERE 1=1 AND <conditions>在SQL子句中使用(通过串联字符串获得的SQL,视图定义)

我已经在某处看到这将用于防止SQL注入,但它似乎非常奇怪.

如果有注射WHERE 1 = 1 AND injected OR 1=1会产生相同的结果injected OR 1=1.

稍后编辑:视图定义中的用法如何?


谢谢您的回答.

但是,我不明白为什么有人会使用这种结构来定义视图,或者在存储过程中使用它.

以此为例:

CREATE VIEW vTest AS
SELECT FROM Table WHERE 1=1 AND table.Field=Value
Run Code Online (Sandbox Code Playgroud)

sql dynamic-sql

246
推荐指数
13
解决办法
19万
查看次数

"其中1 = 1"声明

可能重复:
为什么有人在SQL子句中使用WHERE 1 = 1 AND <conditions>?

我看到有些人使用语句来查询MySQL数据库中的表,如下所示:

select * from car_table where 1=1 and value="TOYOTA"
Run Code Online (Sandbox Code Playgroud)

1=1这里的意思是什么?

mysql sql database

198
推荐指数
5
解决办法
6万
查看次数

查询检查表上的索引

我需要一个查询来查看表中是否已有任何索引.

sql indexing sql-server-2008

37
推荐指数
6
解决办法
25万
查看次数

SQL Server 2008检查索引是否存在

可能重复:
SQL Server DB中所有索引和索引列的列表

我想知道是否有办法根据列名验证特定表的SQL Server数据库中是否存在索引:

假设我运行以下脚本:

  CREATE NONCLUSTERED INDEX [MyIndexName]
  ON [dbo].[MyTable] ([CustomerId])
  INCLUDE ([Id],[ModificationDate],[ProductId])
  GO
Run Code Online (Sandbox Code Playgroud)

现在我想根据表名和列(以及include子句中的列)检查索引是否存在,而不是实际的索引名.

(SQL Server 2008 R2)

谢谢

sql-server sql-server-2008-r2

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

TSQL:如何检查列是否启用了全文?

我需要修改列定义,但我想检查列是否首先启用了全文.有没有办法在TSQL脚本中进行这样的检查?

我正在使用SQL Server 2005.

t-sql sql-server full-text-search sql-server-2005

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

如何在sql数据库中监视和查找未使用的索引

我想监视sql数据库的索引使用情况,以便找到未使用的索引,然后删除它们.如何最有效地监控索引使用情况?哪些脚本可能有用?

(我知道有关识别未使用对象的问题,但这仅适用于sql server的当前运行.我想监视一段时间内的索引使用情况......)

sql-server indexing maintenance

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

在SQL Server中生成CREATE INDEX语句

有没有人有一个脚本列出SQL Server数据库中所有现有索引的CREATE INDEX语句?

此线程SQL Server DB中所有索引和索引列的列表提供了有关如何查找它们的重要提示.但是生成CREATE INDEX语句的脚本会很棒.有时我们遇到没有足够数据的情况,或者在没有文档的情况下以特别方式添加索引,因此缺少create语句.就像我现在发现自己的情况一样.

谢谢.

sql-server indexing

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

为什么Where子句中的(1 = 1)?

此查询来自此处的答案.where子句中有(1 = 1),但执行计划是相同的(SQL Express 2008R2).

我猜它是过去的神器?

SELECT 
     ind.name 
    ,ind.index_id 
    ,ic.index_column_id 
    ,col.name 
    ,ind.* 
    ,ic.* 
    ,col.* 
FROM sys.indexes ind 

INNER JOIN sys.index_columns ic 
    ON  ind.object_id = ic.object_id and ind.index_id = ic.index_id 

INNER JOIN sys.columns col 
    ON ic.object_id = col.object_id and ic.column_id = col.column_id 

INNER JOIN sys.tables t 
    ON ind.object_id = t.object_id 

WHERE (1=1) 
    AND ind.is_primary_key = 0 
    AND ind.is_unique = 0 
    AND ind.is_unique_constraint = 0 
    AND t.is_ms_shipped = 0 
ORDER BY 
    t.name, ind.name, ind.index_id, ic.index_column_id 
Run Code Online (Sandbox Code Playgroud)

sql where-clause

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