在SQL Server 2005中,我有一个表cm_production,其中列出了所有已投入生产的代码.该表有ticket_number,program_type,program_name和push_number以及其他一些列.
目标:按程序类型和推送号计算所有DISTINCT程序名称
到目前为止我所拥有的是:
DECLARE @push_number INT;
SET @push_number = [HERE_ADD_NUMBER];
SELECT DISTINCT COUNT(*) AS Count, program_type AS [Type]
FROM cm_production
WHERE push_number=@push_number
GROUP BY program_type
Run Code Online (Sandbox Code Playgroud)
这让我在那里,但它计算所有的程序名称,而不是不同的程序名称(我不希望它在该查询中做).我想我无法绕过如何告诉它只计算不同的程序名而不选择它们.或者其他的东西.
我想替换(或删除)TSQL字符串中的换行符.有任何想法吗?
显而易见的
REPLACE(@string, CHAR(13), '')
Run Code Online (Sandbox Code Playgroud)
只是不会这样做......
我在SQL中有一个程序,我试图变成Linq:
SELECT O.Id, O.Name as Organization
FROM Organizations O
JOIN OrganizationsHierarchy OH ON O.Id=OH.OrganizationsId
where OH.Hierarchy like '%/12/%'
Run Code Online (Sandbox Code Playgroud)
我最关心的是:
where OH.Hierarchy like '%/12/%'
Run Code Online (Sandbox Code Playgroud)
我有一个存储层的列,例如/ 1/3/12,所以我只使用%/ 12 /%来搜索它.
我的问题是,Linq或.NET相当于使用百分号?
我想更新SQL Server中的前100条记录.我有一个表T1
包含字段F1
和F2
.T1
有200条记录.我想更新F1
前100条记录中的字段.如何TOP 100
在SQL Server中进行更新?
我试图从一个表中选择一些字段并将它们从存储过程插入到现有表中.这是我正在尝试的:
SELECT col1, col2
INTO dbo.TableTwo
FROM dbo.TableOne
WHERE col3 LIKE @search_key
Run Code Online (Sandbox Code Playgroud)
我认为select into是临时表,这就是为什么我得到一个SELECT ... INTO ...
已经存在的错误.
我怎样才能插入多行dbo.TableTwo
成dbo.TableOne
?
是否可以指定条件Count()
?我想只计算在Position列中有"Manager"的行.
我想在count语句中这样做,而不是使用WHERE
; 我问的是因为我需要同时统计管理者和其他人SELECT
(在这个例子中,对我来说Count(Position = Manager), Count(Position = Other))
这样的事情WHERE
是没用的.
有一个复杂的SELECT查询,我想从中将所有行插入表变量,但是T-SQL不允许它.
同样,您不能将表变量与SELECT INTO或INSERT EXEC查询一起使用. http://odetocode.com/Articles/365.aspx
简短的例子:
declare @userData TABLE(
name varchar(30) NOT NULL,
oldlocation varchar(30) NOT NULL
)
SELECT name, location
INTO @userData
FROM myTable
INNER JOIN otherTable ON ...
WHERE age > 30
Run Code Online (Sandbox Code Playgroud)
表变量中的数据稍后将用于将其插入/更新回不同的表(大多数是具有次要更新的相同数据的副本).这样做的目的是简单地使脚本比SELECT INTO
直接进入正确的表更易读,更容易定制.性能不是问题,因为rowcount
它相当小,只在需要时手动运行.
......或者告诉我,如果我做错了.
有没有办法写一个T-SQL命令让它睡一段时间?我正在异步编写Web服务,我希望能够运行一些测试,看看异步模式是否真的会使它更具可伸缩性.为了"模拟"一个缓慢的外部服务,我希望能够使用运行缓慢的脚本调用SQL服务器,但实际上并没有处理大量的东西.
在SQL Server 2008 R2中首次创建时,我有一个最多3个字符的字符串.
我想用前导零填充它,所以如果它的原始值是'1'那么新值将是'001'.或者,如果其原始值为"23",则新值为"023".或者,如果其原始值为"124",则新值与原始值相同.
我正在使用SQL Server 2008 R2.我如何使用T-SQL执行此操作?
这在SQL Server 2008中不起作用:
ALTER TABLE Employee ALTER COLUMN CityBorn SET DEFAULT 'SANDNES'
Run Code Online (Sandbox Code Playgroud)
错误是:
关键字"SET"附近的语法不正确.
我究竟做错了什么?
t-sql ×10
sql-server ×8
sql ×4
.net ×1
asynchronous ×1
insert ×1
linq ×1
newline ×1
sleep ×1
sql-like ×1
sql-update ×1