所以这里是上下文:开发 ASP.NET MVC 4 web 应用程序,我在我的数据库中有一个表ProductAllocations,它由 2 个外键组成:一个来自我的表Products另一个来自表Persons。我有另一个表,车辆,其中包含表产品的外键
我想选择按产品分组的分配及其信息(一个产品可以多次分配)。这是我的存储过程:
ALTER PROCEDURE GetAllVehicles
AS
BEGIN
SET NOCOUNT ON
SELECT
p.FirstName,
p.LastName,
pa.EndDate,
pr.PurchaseDate,
pr.SerialNumber,
pr.CatalogPrice,
v.PlateNumber,
v.FirstCirculationDate,
V.FirstDrivingTax,
v.UsualDrivingTax
FROM bm_ProductAllocations AS pa
INNER JOIN bm_Persons AS p ON pa.Id_Person = p.Id_Person
INNER JOIN bm_Products AS pr ON pa.Id_Product = pr.Id_Product
INNER JOIN bm_Vehicles AS v ON pr.Id_Product = v.Id_Product
GROUP BY pa.Id_Product
END
Run Code Online (Sandbox Code Playgroud)
但是,Group By 子句生成错误:Column 'bm_Persons.FirstName' is invalid …
我有一个供应商数据库,用于具有100个"用户定义字符串"列的Web应用程序.它们的数据类型为varchar,长度为255.
我需要返回所有非空行,以便我可以找出每个行中存储的内容.多年来输入已无法控制,因此userdefinedstring1可以包含多行中的文本,日期,数字,空字符串或NULL.
我最初的解决方案就是
SELECT
*
FROM userdefinedstring table
WHERE userdefinedstring1 IS NOT NULL
OR userdefinedstring2 IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
再重复98次.
可能有更好的方法来做到这一点,但我还没有确定它,所以任何提示你都会受到赞赏.
目前正在查看@return_count作为参数的存储过程.下面是两个方法的独立示例,如果NULL传入a,我可以设置它的值.
无法确定查询优化器是否会将它们视为相同,或者一种方法是否优于另一种方法.
DECLARE @return_count int
SET @return_count = null
IF @return_count is null
BEGIN
SELECT @return_count = 10
END
GO
DECLARE @return_count int
SET @return_count = null
BEGIN
SELECT @return_count = 10
WHERE @return_count is null
END
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个批处理脚本:
例如:我的文件夹中有名为Picture.JPG和Picture2.JPG的文件。该批处理需要复制文件名“Picture”和“Picture2”并将其粘贴到textfile.txt中,其中已经有我不想覆盖的最后一行,因此它会显示如下:
Picture
Picture2
This is the last line
Run Code Online (Sandbox Code Playgroud)
请注意,我不想复制 .JPG 扩展名。
有任何想法吗?
这个mysql查询似乎不适合我:
select *
from myTable
order by
find_in_set( category, "First, Second" ),
sortby,
title;
Run Code Online (Sandbox Code Playgroud)
显然你不能在find_in_set函数之外订购?
有没有解决的办法?我错过了什么吗?
感谢您的回复.
编辑:
这是运行的确切查询:
select
uid,
category,
title,
summary,
image_url,
link_url,
link_text
from links_and_documents
where link_url != ''
and status=1
order by
find_in_set( category, "Test_Category_Two,Test_Category_One" ),
sortby,
title;
Run Code Online (Sandbox Code Playgroud)
它返回您期望的所有项目,但通过sortby命令它们并完全忽略find_in_set函数.
如果我,sortby,title不在查询的末尾,它会通过find_in_set函数对项目进行排序:
select
uid,
category,
title,
summary,
image_url,
link_url,
link_text
from links_and_documents
where link_url != ''
and status=1
order by
find_in_set( category, "Test_Category_Two,Test_Category_One" );
Run Code Online (Sandbox Code Playgroud)
谢谢参观.
表结构:
CREATE TABLE `links_and_documents` (
`id` int(11) NOT NULL auto_increment, …Run Code Online (Sandbox Code Playgroud) 通常我们会在SQL查询中选择字段.例如
SELECT A.id FROM Member A
Run Code Online (Sandbox Code Playgroud)
但是,如果我想将列对齐哪个元素对应于另一个选定字段呢?例如,我想从成员表中选择成员ID,以及计算成员在其他表的元组中出现的次数的COUNT
那么如何使COUNT列与选择结果一致?
我必须根据可能是1,2,3,4的"限定符"列将一些数据分组到类别中.问题是"空"不被视为"分组"类别.
这是我的查询:
SELECT m.id, m.name, COUNT (*)
FROM _gialli_g2bff_distinct AS g
INNER JOIN flag.qualifier_flags AS m ON g.qualifier = m.id
GROUP BY m.name, m.id
ORDER BY m.id;
Run Code Online (Sandbox Code Playgroud)
这是答案:
1 | "NOT_CONTRIBUTES_TO" | 2 2 | "CONTRIBUTES_TO" | 411 3 | "COLOCALIZES_WITH" | 200 4 | "NOT" | 983
这个答案的问题是它没有考虑具有限定符字段EMPTY的所有元素.以下是我想要的答案:
1 | "NOT_CONTRIBUTES_TO" | 2 2 | "CONTRIBUTES_TO" | 411 3 | "COLOCALIZES_WITH" | 200 4 | "NOT" | 983 5 | | 1854
我怎么能修改我的查询?
谢谢
使用Visual Studio,Windows 7和mysql.h库.
我想要做的是发送这样的MySQL查询:
mysql_query(conn, "SELECT pass FROM users WHERE name='Leo Tolstoy'");
Run Code Online (Sandbox Code Playgroud)
我唯一无法工作的是发送一个查询,其中名称不是如上所示的常量,而是从文本字段或其他任何内容中获取的变量.那么我应该如何处理变量而不是常量呢?
希望我明白我的问题.
我需要在我的文本中的每一行都有自己的变量.像这样:
文本文件:
TEMPLATE: Permission, Username, Password;
Admin, Admin, Superflip;
User, Mom, Hi;
Run Code Online (Sandbox Code Playgroud)
我希望此文件中的每一行都在其OWN变量中.可能吗?
我有:
表格1
ID date amt
-------------------
001 21/01/2012 1200
001 25/02/2012 1400
001 24/03/2012 1500
001 21/04/2012 1000
002 21/03/2012 1200
002 01/01/2012 0500
002 08/09/2012 1000
.....
Run Code Online (Sandbox Code Playgroud)
我想从DESC 中ID排序的每组中选择前两行.dateTable1
查询看起来像这样:
SELECT TOP 2 DATE, ID, AMT FROM TABLE1 GROUP BY ID, AMT --(NOT WORKING)
Run Code Online (Sandbox Code Playgroud)
预期产量:
ID date amt
-------------------
001 21/01/2012 1200
001 25/02/2012 1400
002 21/03/2012 1200
002 01/01/2012 0500
.....
Run Code Online (Sandbox Code Playgroud)