我目前在SQL表中使用XML数据类型
我的数据表看起来像这样
Id | Name | Surname | Title | Location | Artist |
-------------------------------------------------------
1 | xxx | abc | def | London | XML |
2 | xxx | abc | def | Oslo | XML |
3 | xxx | abc | def | New York | XML |
Run Code Online (Sandbox Code Playgroud)
我的XML文件看起来像这样
<song category="gaming">
<title>Valentine's Day</title>
<artist-main>Fatfinger</artist-main>
<artist-featured>Slimthumb</artist-featured>
<year>2013</year>
<price>29.99</price>
<album>Gamestain</album>
<albumimg>http://download.gamezone.com/uploads/image/data/875338/halo-4.jpg</albumimg>
<songurl>http://www.youtube.com/watch?v=-J0ABq9TnCw</songurl>
Run Code Online (Sandbox Code Playgroud)
现在根据艺术家获取记录我正在使用查询
SELECT
Id, Name, Surname, Title
FROM
DATA
WHERE
Artist Like '%Fatfinger%' -- (this is user …
Run Code Online (Sandbox Code Playgroud) 已分配Combobox数据源
cmbCombobox.DataSource = myCollection
Run Code Online (Sandbox Code Playgroud)
其中myCollection的类型为MyCollection:List
如何清除组合框中的项目?
我正在创建一个外部表,如下所示
CREATE EXTERNAL TABLE '~\test.csv'
USING ( DELIMITER ',' Y2BASE 2000 ENCODING 'internal' REMOTESOURCE 'ODBC' ESCAPECHAR '\' )
AS SELECT * FROM TEST_TABLE;
Run Code Online (Sandbox Code Playgroud)
它工作正常.我的问题是:
有没有办法可以将标题值命名为test.csv文件中的列名?是否有可能在Netezza或postgres.
我想我们可以使用COPY来完成它,但是我想使用EXTERNAL TABLE命令来完成它.
谢谢
我想实现这个目标 -
SELECT * FROM A1234
Run Code Online (Sandbox Code Playgroud)
我将ID 1234保存在名为Aliases的另一个表中,该表有两列Alias,ID和一条记录,如下所示.
Alias = TestTable,ID = 1234
所以我正在尝试这样的事情
SELECT * FROM ('A'+ (SELECT ID FROM Aliases WHERE Alias = 'TestTable'))
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激
我读了一本书,例如,Pro SQL Server 2008关系数据库设计和实现Lois Davidson,我发现了检查@@rowncount
触发器内部的建议if it is = 0 then return
:
if @@rowcount = 0 return
Run Code Online (Sandbox Code Playgroud)
我想知道是否修改了没有行如何触发触发器?
我有以下场景,我想订购表格,并按具有最高到最低金额的组排列
name score
----------------
abc 10
pqr 9
abc 7
pqr 3
abc 10
xyz 7
pqr 7
xyz 3
xyz 2
Run Code Online (Sandbox Code Playgroud)
现在,如果我们观察,
总(abc)= 10 + 7 + 10 = 27
总(pqr)= 9 + 3 + 7 = 19
总(xyz)= 7 + 3 + 2 = 12
如何SQL
按最高总和的组对上表进行排序,它应该显示单个条目?
Expected output:
----------------
name score
----------------
abc 10
abc 10
abc 7
pqr 9
pqr 7
pqr 3
xyz 7
xyz 3
xyz 2
Run Code Online (Sandbox Code Playgroud) 我有一张这样的桌子,
country 2007 2008 2009
UK 5 10 20
uk 5 10 20
us 10 30 40
us 10 30 40
Run Code Online (Sandbox Code Playgroud)
但我想像这样填充表格,
country year Total volumn
uk 2007 10
uk 2008 20
uk 2009 40
us 2007 20
us 2008 60
us 2009 80
Run Code Online (Sandbox Code Playgroud)
如何使用数据透视表或任何其他方法在SQL Server 2008中执行此操作.
我有一个我需要修改的预先存在的过程,并且以非常简单的方式,它的编写类似于下面的示例.
该过程在@StudentID和@SubjectID中传递,如果@SubjectID = 0,它执行查询而根本不对SubjectID进行过滤,否则它执行完全相同的查询但过滤SubjectID.
CREATE PROCEDURE SomeProcedure
@StudentID INT,
@SubjectID INT
AS
BEGIN
IF(@SubjectID = 0)
BEGIN
SELECT SomeColumns
FROM SomeTable
WHERE StudentID = @StudentID
END
BEGIN
SELECT SomeColumns
FROM SomeTable
WHERE StudentID = @StudentID
AND SubjectID = @SubjectID
END
END
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎很荒谬; 我们现在必须维护同一个查询的两个副本; 一个过滤主题ID而另一个不过滤.我无法控制应用程序希望传递SubjectID = 0以获取所有主题的结果这一事实.
鉴于我无法更改过程的签名,我该如何重写它以便它不需要两个单独的查询?
我已经尝试在WHERE子句中使用CASE语句,但我无法弄清楚如何有条件地包含WHERE谓词的部分.
这个问题的英文翻译是"IF @SubjectID = 0,返回带有任何SomeTable.SubjectID值的结果,ELSE只返回SomeTable.SubjectID = @SubjectID的结果"
如何在单个查询中完成该任务(请不要动态SQL建议)?
是否可以使用 SQL 以新格式显示日期,例如 dd-mm-yyyy,然后按转换后的日期排序?
我试过类似的东西:
SELECT CONVERT(varchar(10), [Date Depart], 105) AS [Date Depart]
FROM FLIGHT
ORDER BY CONVERT(varchar(10), [Date Depart], 105) DESC
Run Code Online (Sandbox Code Playgroud)
它不适用于 MS SQL Server。它仍然按 VARCHAR 排序。