在此先感谢,我似乎无法得到它!
我有两张桌子
Ordered_Item
ID | Item_Name 1 | Pizza 2 | Stromboli
Ordered_Options
Ordered_Item_ID | Option_Number | Value
1 43 Pepperoni
1 44 Extra Cheese
2 44 Extra Cheese
我想要输出的是一个mysql查询就是这个效果
产量
ID | Item_Name | Option_1 | Option_2 1 Pizza Pepperoni Extra Cheese 2 Stromboli NULL Extra Cheese
我尝试了很多以语法错误结尾的选项,我尝试过group_concat,但那并不是我想要的.我在下面有一个粗略的例子,我认为可能是一个开始.我每次都需要选项以相同的顺序.在收集信息的程序中,没有办法可靠地确保会发生这种情况.是否可以根据选项号将它们连接起来.此外,我知道我将永远不会有超过5个选项,所以静态解决方案将起作用
Select Ordered_Items.ID,
Ordered_Items.Item_Name,
FROM Ordered_Items
JOIN (SELECT Ordered_Options.Value FROM Ordered_Options Where Option_Number = 43) as Option_1
ON Ordered_Options.Ordered_Item_ID = Ordered_Item.ID
JOIN (SELECT Ordered_Options.Value FROM Ordered_Options Where Option_Number = 44) as Option_2 …Run Code Online (Sandbox Code Playgroud) 有没有办法只运行一次查询以选择变量,考虑到查询可能什么都不返回,那么在这种情况下变量应该为null.
目前,我无法select into直接执行变量,因为如果查询什么都不返回,PL/SQL会抱怨变量没有设置.我只能运行查询两次,第一个执行计数,如果计数为零,则将变量设置为null,如果计数为1,则选择变量.
所以代码就像:
v_column my_table.column%TYPE;
v_counter number;
select count(column) into v_counter from my_table where ...;
if (v_counter = 0) then
v_column := null;
elsif (v_counter = 1) then
select column into v_column from my_table where ...;
end if;
Run Code Online (Sandbox Code Playgroud)
谢谢.
更新:我没有使用异常的原因是我在分配之后仍然有一些跟随逻辑v_column,我必须goto在异常部分中使用跳转回以下代码.我有点犹豫不决goto.
是否可以使用这样的文字扩展查询结果?
select name from users
union
select name from ('JASON');
Run Code Online (Sandbox Code Playgroud)
要么
select age, name from users
union
select age, name from (25,'Betty');
Run Code Online (Sandbox Code Playgroud)
所以它返回表中的所有名称加'JASON'或(25,'Betty').
我遇到以下问题Chrome:
var items = $("option", obj);
items.each(function(){
$(this).click(function(){
// alert("test");
process($(this).html());
return false;
});
});
Run Code Online (Sandbox Code Playgroud)
这个click事件似乎没有发生Chrome,但是起作用Firefox.
我想能够click一对option元素从一个组合,如果我这样做,而不是另一种元素,可以说,<li>它工作正常.有任何想法吗?谢谢.
如果我执行SELECT a AS b并且b不是表中的列,是否会查询创建"虚拟"列?
实际上,我需要在查询中加入一些虚拟列并将一些信息处理到查询中,以便稍后我可以将它与每个项目一起使用.
我一直向我的开发者讲道,这SELECT *是邪恶的,应该像瘟疫一样避免.
有什么理由可以说是合理的吗?
我不是在谈论COUNT(*)- 大多数优化者都可以解决这个问题.
编辑
我在谈论生产代码.
我看到这个不好的做法的一个很好的例子是select *在存储过程中使用的传统asp应用程序,用于ADO循环返回的记录,但是通过索引得到列.您可以想象在字段列表末尾之外的某处添加新字段时发生的情况.
在Oracle中,可以执行一个SELECT语句,将行号作为结果集中的列返回.
例如,
SELECT rownum, column1, column2 FROM table
Run Code Online (Sandbox Code Playgroud)
收益:
rownum column1 column2 1 Joe Smith 2 Bob Jones
但我不想手动指定每一列.我想做的事情如下:
select rownum,* from table
Run Code Online (Sandbox Code Playgroud)
rownum column1 column2 column3 column4 1 Joe Smith 1 2 2 Bob Jones 3 4
有任何想法吗?
我正在尝试执行包含静态字符串值列的SELECT语句.我在Access中完成了这项工作,但从未使用原始SQL.这可能吗?
例:
Name | Status
------+--------
John | Unpaid
Terry | Unpaid
Joe | Unpaid
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,数据库中不存在"状态"列.
我试图通过jQuery从下拉列表中获取所选值.当我单击SEND时,我有一些javascript验证表单,以确保没有空格,代码如下:
function formCheckDancer(formobj){
// Enter name of mandatory fields
var fieldRequired = Array("dancerStageName", "dancerFullName", "dancerPhone", "dancerEmail", "dancerCountry", "dancerAvailableDate");
// Enter field description to appear in the dialog box
var fieldDescription = Array("Stage Name", "Full Name", "Phone Number", "Email Address", "Nationality", "Availability");
// dialog message
var alertMsg = "Please complete the following fields:\n";
var l_Msg = alertMsg.length;
for (var i = 0; i < fieldRequired.length; i++){
var obj = formobj.elements[fieldRequired[i]];
if (obj){
switch(obj.type){
case "select-one":
if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text …Run Code Online (Sandbox Code Playgroud) dplyr::select 导致data.frame,如果结果是一列,有没有办法让它返回一个向量?
目前,我必须执行额外的step(res <- res$y)将其转换为data.frame中的vector,请参阅此示例:
#dummy data
df <- data.frame(x = 1:10, y = LETTERS[1:10], stringsAsFactors = FALSE)
#dplyr filter and select results in data.frame
res <- df %>% filter(x > 5) %>% select(y)
class(res)
#[1] "data.frame"
#desired result is a character vector
res <- res$y
class(res)
#[1] "character"
Run Code Online (Sandbox Code Playgroud)
如下:
res <- df %>% filter(x > 5) %>% select(y) %>% as.character
res
# This gives strange output
[1] "c(\"F\", \"G\", \"H\", \"I\", \"J\")"
# I need:
# [1] …Run Code Online (Sandbox Code Playgroud)