您是否需要Sql Server 2008的特定版本才能具有TVP(表值参数)或表类型
我没有“类型”下的文件夹,尝试创建文件夹时出错:
CREATE Type EntityTable AS TABLE
(EntityId int
,EntityName varchar(max)
,EntityFriendlyName varchar(max)
,IconPath varchar(max)
,EntityDescription varchar(max)
,EntityToolTip v
我正在使用SSMS 2008,试图只选择一行/客户端。我需要选择以下列:客户端名称、结束日期和程序。有些客户端只有一个客户端行。但其他人有多重选择
对于具有多行的客户端,它们通常具有不同的结束日期和程序。例如:
CLIENT PROGRAM END_DATE
a b c
a d e
a f g
h d
我提出了一个编辑建议。
DECLARE @table1 TABLE
(
nr INT
, ch CHAR
)
DECLARE @table2 TABLE
(
nr INT
, ch CHAR
)
INSERT INTO @table1
SELECT nr,ch FROM [dbo].[SplitStringIntoCharacters] ('WORD w') --> return a table of characters(spaces included)
我有一个表变量,使用Insert Into-Select语句在其中插入一些值。select是几个连接的组合,单独执行时需要3秒钟。问题是整个代码需要3-4分钟才能执行。我想知道这有什么特别的原因
这是my table变量声明:
DECLARE @Result TABLE
(
ProductID NVARCHAR(25) PRIMARY KEY
,ProductName NVARCHAR(100)
,ProductCategoryID TINYINT
,Prod
建立一个查询
单个查询如下所示,运行时间为7.0秒。它确实返回了正确的答案。需要根据特定条件对行进行计数,然后获得最大计数。我的问题是这个备用查询的性能。用游标包装的同一个查询需要0.15秒。在游标中,查询计划大不相同。如何使独立查询运行得更快
使用提示可以使单机版计划看起来像光标计划,从而解决了速度问题
固定查询:(由于选项失败,并非始终固定)
问题查询:
select getdate();
go
select max(list.match) as 'max'
from
(
标签: Tsql
combinationscombinatoricspicking
坐在一个部分,你会对它构成风险,因为当你进入它时,温度会升高,因此访问的部分越少越好。是的,segmentID可以被视为物品的一个属性,它使用连接来获取它,但是yepI正在做其他事情,但是非常感谢您的回答,我希望在第二天左右就能够了解它!再一次,真诚地,非常感谢你的回答。我正忙着做其他事情,但非常感谢你的回答,我希望在第二天左右就能弄明白!再次真诚地感谢你的回答。
Segment ID, NumberOfItemsRequiredInSegment
Segment Count Query
我编写了一个存储过程,它只允许有100行具有相同的CustomerPK,因此如果我们要插入第101行,则需要删除具有相同CustomerPK的最早的行
我确信有几种方法可以做到这一点,但我不确定哪种方法最好。这是程序的代码
DECLARE
@TokenCount INT;
SELECT
@TokenCount = COUNT(*)
FROM
CustomerAuthTokens
WHERE
CustomerPK = @CustomerPK;
IF @T
有没有更简单的方法来执行此查询
实际上,在一个更大的查询中使用它
宁愿不使用EXCEPT、UNION、INTERSECT
作为更大查询的一部分,优化器可能会在派生表和
发布较大的查询没有价值,因为它是动态的
docSVsys上的PK是sID
docMVenum1上的主键是sID、enumID、valueID
select sID from docSVsys
EXCEPT
select sID
from docMVenum1
where enumID = 140
仅供参考,SplitDelimiterString是一个函数。
-SplitDelimiterString的代码
drop table #temp
Create Table #Temp
(
col1 Varchar(20),
col2 Varchar(20),
Col3 Varchar(50),
col4 Varchar(20)
)
Select * From #Temp
Insert Into #Temp(col1)
Select * From SplitDelimiterS
如何将信息的xml文档插入到现有表中,我不知道insert语句如何工作我的代码如下:
USE MyGuitarShop;
DECLARE @CustomerUpdate XML;
SET @CustomerUpdate = '
<NewCustomers>
<Customer LastName="Chan" FirstName="Isabella" Password="" EmailAddress="izzychan@yahoo.com"/>
&
为了方便起见,我想先在我的存储过程(对于SQL Server 2012)中声明搜索参数的标量值,然后再在搜索的WHERE子句中实际使用它们。所以基本上我想这样做:
CREATE PROCEDURE [test_select]
@firstName VARCHAR(50)
, @lastName VARCHAR(50)
AS
IF @firstName != ''
BEGIN
SET @firstName = '%' + @firstNam
我正在发表看法。我现在拥有的是:
CREATE VIEW [dbo].[vwEventDetails]
AS
SELECT
ISNULL(ROW_NUMBER() OVER (ORDER BY EventID), 999999999) AS Row,
STUFF(DetectorID, len(DetectorID), 1, '0') as SiteID,
DetectorID AS DetectorID,
StartedOn AS StartedOn,
我试图在一个名为Total的列中插入一个值,计算一周中花费的小时数
我在网站上有一个表单,允许用户输入周一、周二、周三、周四、周五、周六和周日的值
我可以通过每个字段的标记访问输入的值。IE:如果我需要Mon的值,我可以使用[Mon]获取它,它将提取用户在列中输入的任何数字
使用此功能,我可以构建一个查询,例如:
INSERT INTO MyTbl (Mon, Tues, Weds, Thurs, Fri, Sat, Sun,)
VALUES ('[Mon]', '[Tues]', '[Weds
我有一个表格,里面有电子邮件数据,特别是发送日期和时间。我需要提取每天在给定时间后(即营业结束后)发送的记录。问题是每天的营业时间可能会有所不同。目前我们只在下午6点后使用,但与本周剩余时间相比,一些业务可能在周五提前完成
我可以按照以下方式进行单个查询:
SELECT DataExtractTableID FROM DataExtractTable WHERE (Box = 'Sent Items') AND
(Owner = @EmailAddress) AND
(DateSent BET
我如何确保TSQL不会对我咆哮
这些值返回:
“1.00000000”
或
无效的
或
''
或
“一些价值”
如果您使用的是SQL Server 2012或更高版本,当我转换为int时,您可以使用TRY\u convert功能,例如
WITH yourTable AS (
SELECT 123 AS intVal UNION ALL
SELECT '123' UNION ALL
SELECT NULL
)
SELECT
intVal,
CASE WHE
我有一个存储过程,可以很好地返回数据,它是由其他人开发的,现在还没有联系
输出现在看起来像
这里我附加了查询的一部分,返回数据
SET @sql = '
Select XX.*,'''' scale,Isnull(AllowComma,''FALSE'') AllowComma,Isnull(AllowedDecimalPlace,''0'') AllowedDecimalPlace,
Isnull(AllowPercentageSign,''FALSE'') All
标签: Tsql
Ssas
business-intelligencecubedatasourceview
我试图使用TSQL查询将多维数据集的数据与数据集市的数据进行比较。我很难找到多维数据集中使用的列的来源。因为多维数据集中使用的列来自数据源视图,但我如何知道哪个表
感谢帮助您熟悉SQL Server商业智能吗?一般来说,您看到的“列”来自事实表,它们被分割成一个或多个维度(由维度表定义)
如果您知道如何使用多维数据集,那么最好通过SQL Server Business Intelligence Studio检查多维数据集。如果您对使用BIDS来设计SSAS多维数据集有点不确定,您应该开始学习。这
假设我们有以下XML:
<root>
<row>
<column>row 1 col 1</column>
<column>row 1 col 2</column>
<column>row 1 col 3</column>
</row>
<row>
<column>row 2 col 1</column>
请帮我了解一下,订单对over条款的影响。我读过msdn和一本书,但仍然有误解
假设我们有这样的疑问:
SELECT Count(OrderID) over(Partition By Year(OrderDate))
,*
FROM [Northwind].[dbo].[Orders]
ORDER BY OrderDate
结果是,每个原始数据都有一列,该列的值为表中同一年有多少个条目
但是当我尝试这个查询时发生了什么
SELECT ROW_NUMBER() over(Parti
我想获取具有指定角色的所有数据库用户的列表。角色是存储过程或函数的参数
例如带有用户名及其角色的select语句
+============+==========
| User name | Role |
+============+==========
MS SQL Server 2008可能会使用类似的内容
SELECT
SU.Name AS UserName, SR.Name AS RoleName
FROM
sysUsers AS SU
INNER
我试图开发一个查询,只返回不重复的记录,以便我可以将这些记录添加到我的数据库中,但我不断得到重复记录错误
我尝试了您的解决方案,但仍然遇到重复错误问题。我删除了重复的35行。还有什么原因可能导致这种情况?这是我的问题。我认为混淆的一部分是measureid是j5c_MasterMeasures中的一个列,但是这个值来自j5c_ListBoxMeasures_Sys中的两个字段
CREATE TABLE #GOOD_RECORDS3 (STUDENTID VARCHAR(50), MEASURED
标签: Tsql
common-table-expression
我使用CTE()从树中获取所有项目(例如广告),但我想知道两件事——最困难的部分:
1) 是否有可能获得找到的广告的所有类别名称?(在递归CTE查询中,查看上面的超链接)
2) 和(可选)如何获得每个类别的总找到的广告数?我的意思是,假设我从3个类别中找到了6个项目,我希望看到这样的结果
category1 (6) -\
| category3 (4)
category2 (2)
任何想法都会非常有帮助对于第一个问题,你需要从下到上,它可以通过改变查询顺序来解决,例
在transact-sql中,我有:
DECLARE @phrase='KeyWord1 KeyWord2 ,KeyWord3 ' -- and my be more separated by space,comma or ;(but mainly by space=it's a phrase)
I have a table Students
Students
(
StudentId bigint,
给出以下简单的测试表:
CREATE TABLE dbo.Test
(
Id bigint IDENTITY(1,1) NOT NULL,
Name varchar(50) NULL
)
我想使用OUTPUT子句将identity列的值放入INSERT之后的标量变量中,但这不起作用:
DECLARE @InsertedId BIGINT;
INSERT INTO Test(Name)
OUTPUT @InsertedId=inserted.Id
VALUES ('Micha
如果我在WHERE子句中使用以下任一项,会有很大区别吗
WHERE [Process Code] = 1 AND ([Material ID] = 'PLT' OR [Material ID] = 'BMI')
--or
WHERE [Process Code] = 1 AND [Material ID] IN ('PLT', 'BMI')
有没有时间我会使用其中一个而不是另一个?在您提供的示例中,他们正在做完全相同的事情(他们将产生相同的执行计划)。但是,使用后一种语法(除了更简洁外)
标签: Tsql
excel-2007oledbopenrowsetisam
我正在尝试使用带有“Microsoft.ACE.OLEDB.12.0”OLE DB提供程序的T-SQL OpenRowset()命令将Excel 2007(.xlsx)文件中的数据导入SQL Server 2008,并且遇到一个永久性的“找不到可安装的ISAM”错误。所有硬件都是32位的
[2012年1月10日修订,试图更敏锐地关注异常情况]
以下T-SQL语句产生错误:
从OPENROWSET('Microsoft.ACE.OLEDB.12.0'中选择*,
'Data Source=C:\wo
我现在正在维护一个由别人编写的大型应用程序,从一些大型政府遗留系统中挖掘数据。基本上,我需要一个查询结果来填充gridview,该gridview从技术订单中获取每个零件号,并在Fedlog表中统计匹配的零件号。如果没有找到,请查看“商业”表。现有查询当前仅在Fedlog表中查找,内容如下:
select p.*,
(select case when count(*) > 0 then 'Y' else 'N' end as SL
from tbl_fedlog where [Par
我可以使用存储过程来归纳系统视图吗?例如,我有:
CREATE PROCEDURE DBO.status_serwer
AS
BEGIN
EXECUTE msdb.dbo.sysmail_help_status_sp
END
Sysmail\u help\u status过程返回服务器的状态:“stopped”或“started”,现在,我可以将start\u serwer过程作为视图或函数调用吗?有人帮忙吗?好吧,如果你查看存储的进程内部,你可以抓取它运行的查询并稍加修改,这样你就可以在其他
标签: Tsql
group-bymultiple-columns
我有一个问题让我困惑了两天。问题就在这里。我有一张像这样的桌子:
我想做的是对最终在同一个表中的分组进行排序。对于上面的示例,我将以以下内容结束:
这样的事情能完成吗?正如您所注意到的,我们按不同的列进行分组。这不一定要用一个查询来完成,但是,它必须在一个表/数据集中结束。似乎您需要这样:
select PeriodEarnedYear,
sum(PeriodEarned) Earned,
Sale
from yourtable
group by PeriodEarnedYe
我创建了一个sp_send_dbmail,它从我的数据库中获取查询信息,但现在当它返回日期时,在需要空格的地方会显示一个“T”
我试图用空格Set@Body=replace(@Body,'T','')替换“T”
但什么也没发生
请帮忙
Set @TableHead = '<html><head>' +
'<H1 style="color: #000000">SpeedDail Lookup</H1>' +
我能听到你说:那就不那么简单了,是吗
这是桌子:
CREATE TABLE [bulkimport].[Test](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Data] [nvarchar](50) NULL,
CONSTRAINT [PK_Test_1] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNO
大家好
我有这样的代码,有点难看,
我的一位朋友告诉我,我可以在这里实现Case语句,但我不知道如何实现,代码很长,如果您能帮助我优化代码,我将不胜感激
请对我温柔一点,我是T-sql的新手:)
谢谢大家!
SELECT
SUM(CYJEWELRY) 'CY_Jewelry'
,SUM(CYAPPLICANCE) 'CY_Appliance'
,SUM(CYCELLPHONE) 'CY_Cellphone'
,SUM(PYJEW
我正在尝试使用Tsql将行转换为列,并消除空值。我该怎么做?我当前的查询:
IF OBJECT_ID(N'tempdb..#test_data') IS NOT NULL drop table #test_data
create table #test_data (
question_caption varchar(max),
[0] varchar(max),
[1] varchar(max),
[2] varchar(max),
[3] varchar(max))
insert #tes
我想用一些值(存储为NVARCHAR(128))设置CONTEXT_INFO,然后在另一个地方读取这个值并用它创建一个xml变量。不幸的是,select上有更多的字符,不知道如何修复。
复制代码:
exec dbo.[SetConnectedUser] 'p'
DECLARE @contextInfo VARCHAR(128) = NULLIF(CAST(CONTEXT_INFO() as VARCHAR(128)), '')
SELECT @contextInfo AS 'ContextI
我们正在开发一个带有SQL Server后端的Access应用程序。我们有一个表,其中包含属于部门a、B或C的记录。用户也属于角色a、B或C。我们希望每个用户只看到其相应的部门记录,以及某些列
我想到了两种方法,一种是对每个角色进行不同的查询,然后根据用户的角色更改表单的源对象。但是,我不知道是否可以使用VBA从SQL SERVER检索它(到目前为止,我发现的所有VBA文档都非常缺乏)
我认为的另一个解决方案是在服务器上实现这一点,但是我不知道t-SQL查询或视图如何仅获取基于用户角色的所需信息
标签: Tsql
common-table-expressionhierarchical-datarecursive-queryself-join
我在一个自联接层次表中有数据,大陆有许多国家有许多地区有许多州有许多城市
自连接表结构:
|-------------------------------------------------------------|
| ID | Name | Type | ParentID | IsTopLevel |
|-------------------------------------------------------------|
| 1 | North
我有我的T-SQL代码,下面是我在Pyspark中转换的代码,但给出了错误
案例
当time_on_site.eventaction='IN'和time_on_site.next_action='OUT'和time_on_site.timespunt_sec=72000时,则为0
当time_on_site.eventaction='IN'和time_on_site.next_action='IN'和time_on_site.timespunt_秒28800时,则为3
当time_on_site
我有一个临时表,其中有多行,每行有一列名为类别;它包含一个非常简单的json数组,用于不同表中的类别
临时表的几个示例行:
Id Name Categories
---------------------------------------------------------------------------------------------
'539f7e28-143e-41bb-8814-a7b93b8460
我正在SQL Server 2000服务器上使用Quest的TOAD for SQL Server
我的问题是:
SELECT CASE SLCE.GroupName WHEN 'Other' THEN ARM.FBCOMPANY
WHEN 'Inter Co.' THEN ARM.FBCOMPANY
ELSE SLCE.GroupName END AS [Company Name],
谢谢你看这个
该问题与以下sql查询有关。基本上,它递归地查找某个页面母版页下的所有页面,然后将在外部参照页面类别中查找的母版页的类别应用于所有这些页面
在运行insert时,查询表中本应完全插入的数据将挂起
如果我在没有插入行的情况下运行查询,结果会完美地返回,如:
3245 490
3249 490
3252 490
但是在将insert放在前面并插入时,pageid=3245的查询就挂起了。有什么想法吗
declare @page int;
set @page=320
标签: Tsql
Join
sql-functionquery-parameters
仅使用SQL几个月(这个地方到目前为止帮了我很大的忙,谢谢大家!)
但是,尽管我是一个DB程序员初学者,我已经注意到有许多大型连接,我发现自己在一遍又一遍地重复。我正在考虑为常用联接创建一个表值函数,并允许将一个参数传递到该函数中,该函数将过滤结果
例如。
而不是写作
SELECT *
FROM T1 join T2 on T1.A = T2.A
join T3 on T2.B = T3.B
join T4 on T3.C = T4.D
WHERE T1.D
我一直在寻找关于如何从另一个表中获取设置值的参考,但我们并不真正使用此字段,因此我很乐意将其设置为通用值“1”
我只想设置11k示例,其中使用此查询底部的select删除了模型类型
update webhelpdesk.dbo.ASSET
set MODEL_ID = N'1'
where ASSET_NUMBER =
(select a1.ASSET_NUMBER
from asset a1
left join webhelpdesk.dbo.MODEL m1 on
如果值与查找表中的值匹配,我想替换SELECT语句中的值。这是为了处理从子对象到父对象的映射
DECLARE @Mappings TABLE
(
IdKey INT IDENTITY PRIMARY KEY ,
ParentModule NVARCHAR(255) ,
ChildModule NVARCHAR(255)
)
这是由子模块及其父模块填充的,大约有200个这样的映射
然后在我的SELECT语句中,我想使用ParentModule而不是子模块,但如果子模
所以我一直在尝试将我的数据库从Access-2010迁移到SQL-2012
大多数表和查询都可以,但我在这方面遇到了问题:
IIf([mkt_Original].[IMPOEXPO]="1",IIf([prod]="0201",IIf(([USD]/[Tons])
<[TCambio].[CortePrecio0201],1,0),IIf([prod]="0202",IIf(([USD]/[Tons])
<[TCambio].[CortePrecio0202],1,0)
我只想使用tsql获取日期时间的时间部分。我发现,要获得不同的格式,可以使用以下内容:
CONVERT(varchar,GETDATE(),108) ---17:15:00 gives time in 24hr format
我想在下午5:00得到它。使用
这是。什么版本的SQL?2008年及以后的版本有几种“时间”数据类型,如果您只需要时间的话,它们更方便
对于布局/演示,使用CONVERT功能和所需的格式代码。下面是一个如何工作的示例:
DECLARE @When time
SET @
对于@AgentSQL给出的“从完整路径解析文件名和路径”,我得到了一个很好的答案
答案简单有效,但我很难理解。代码如下:
DECLARE @full_path VARCHAR(1000)
SET @full_path = '\\SERVER\D$\EXPORTFILES\EXPORT001.csv'
SELECT LEFT(@full_path,LEN(@full_path) - charindex('\',reverse(@full_path),1) + 1) [path],
我有下表:
DECLARE @MyTable TABLE (Id UNIQUEIDENTIFIER, MyColumn NVARCHAR(50))
INSERT INTO @MyTable (Id, MyColumn)
VALUES (NEWID(), N'1')
,(NEWID(), N'1234')
,(NEWID(), N'12')
,(NEWID(), N'123')
SELECT
ROW_NUMBER() OVER(ORDER BY My
我有如下数据
ColumnA ColumnB
1234 1
1234 2
1234 3
1235 2
1236 2
1237 1
1237 2
1238 1
1238 3
1238 5
我需要如下所示的输出,其中只显示在第1列中具有相同值的项(例如ColumnA)
实际上,我通过下面的查询得到第一个表,如何修改它以按照最终的表显示
select ColumnA, ColumnB
from T
标签: Tsql
casesql-server-2014sql-order-by
是否有其他方法可以按年龄组对结果进行适当排序?作为一种变通方法,我在每个年龄组之前放置了一个字符,以便按时间顺序显示——但如果字母不在那里,那么它就不会按我期望的顺序显示。以下是T-SQL:
WITH AgeData
AS ( SELECT DATEDIFF(YEAR, birthDate, GETDATE()) - CASE WHEN GETDATE() < DATEADD(YEAR , DATEDIFF(YEAR, birthDate, GETDATE()), birthDate )
我有一个名为Measures的表,其中包含不同字段中代码的结果值,具体取决于PracticeID。例如:
PracticeID Code Value1 Value2
---------- ---- ------ ------
1 CX H null
2 CX null L
PracticeID Code ColumnName
---------- ---- ----------
1 CX Value1
2
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 156 页