当前位置:首页 » 编程语言 » bl组件写sql语句
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

bl组件写sql语句

发布时间: 2022-05-27 10:12:08

❶ 帮忙编写一个sql语句

create table emp
(
emp_id varchar(10),
emp_name varchar(20)
)

insert emp
select '001', 'aa' union
select '002', 'bb' union
select '003', 'cc' union
select '1001', 'allll' union
select '1002', 'bllll' union
select '1003', 'cllll'

create table pro
(
emp_id varchar(10),
mg_id varchar(10)
)
insert pro
select '001', '1002' union
select '002', '1003' union
select '003', '1001'

select e.emp_name,
(select emp_name from emp where emp_id=p.mg_id)as mg_name
from emp as e right join pro as p on e.emp_id=p.emp_id

❷ 一个简单sql语句的写法

你这样做会大量消耗服务器资源,不如先写个方法,返回布尔值判断是否相同,然后再写如数据库:

public bool blInsert(string strName)
{
string strSql="select username from uname where username='"+strName+"'";//SQL语句
try{
DB db=new DB();//这个是我自己写的数据库连接类,改成你自己的
DataTable tb=db.openSql(strSql);
if(tb.count>0)//如果返回的行数大于0,也就是有数据
return ture;//方法返回真
}
catch
{}
return false;
}

在程序中你先调用这个方法再写入数据,如:

if(blInsert(name.Text.ToString().Trim() ))//如果返回的是真
{
return;//退出运行
}
else
{
//这里写你写的insert方法
}

我是用C#编程的,上面的代码是用C#写的,如果你用的是其他语言,可以用相同的思路去写程序

❸ (急)sql语句怎么写怎么实现啊

先在cp表中插入一列,语句如下:
alter table
add userid char(8)
因为你没有说明你的类型,我就假定是字符型8个长度了。
然后更新里面数据,语句如下:
Update cp Set cp.userid=user.userid
WHERE cp.gsmc=user.gsmc

❹ sql语句怎么写

--就你所述需求,在SQLServer2000环境下,语句如下:
SELECT [姓名],
SUM(CASE [科目] WHEN '语文' THEN [成绩] END) AS [语文],
SUM(CASE [科目] WHEN '数学' THEN [成绩] END) AS [数学],
SUM(CASE [科目] WHEN '英语' THEN [成绩] END) AS [英语]
FROM TableName
GROUP BY [姓名]
GO

--在SQLServer2005或更高版本环境下,语句还可以如下格式(效率更高噢):
SELECT [姓名], [语文], [数学], [英语]
FROM TableName
PIVOT(SUM([成绩]) FOR
[姓名] IN([语文], [数学], [英语])) AS T
GO

--另外说一下,表设计是否合理不能一概而论,不同的结构有不同的用法,具体要看需求。
--你这个还是相对较合理,而且毕竟就算要行转列也不会大幅影响效率
-- powerbuildre所说的应该加一个学号列倒是应该甚至必须的,这样姓名列就可以除去了,而且也一般是把学号当做外键关系来匹配的。至于他写的这个句子,数据库引擎处理逻辑上是把原表进行四倍的笛卡尔积运算,然后匹配where字句,也就是说假设表原来有1000行数据,它会运算成1000*1000*1000*1000行的一个虚拟表然后匹配where字句,效率极低;只是SQLServer2000及更新版本会自动优化成四个表的inner join也就是内联查询的关系。数据量小的话,效率可能不怎么能轻易看出来,但是数据量一大,很容易拖垮服务器。这是一种极不推荐的写法,换句话说,如果你用这种语法面试,可能当场就会被pass掉了。

想学SQLServer啊?QQ:316784428
一起交流啊,我也是完全从自学开始一步一步走到今天的~!

❺ 编写SQL语句

DECLARE @str varchar(1000)
declare @price float
declare @count int
DECLARE @idoc int;
DECLARE @doc xml;

declare cur cursor for select ID,价格 from 表1
open cur
fetch next from cur into @str,@price
while @@FETCH_STATUS<>-1
begin
set @doc=cast('<Root><item><ID>'+replace(@str,',','</ID></item><item><ID>')+'</ID></item></Root>' as xml)
EXEC sp_xml_preparedocument @Idoc OUTPUT, @doc
SELECT @count=COUNT(*) FROM OPENXML (@Idoc, '/Root/item',2)
WITH (
[ID] varchar(10)
)
update t1 set t1.价格=@price/@count from 表2 t1 inner join (SELECT ID FROM OPENXML (@Idoc, '/Root/item',2)
WITH (
[ID] varchar(10)
) ) t2 on t1.ID=t2.id
fetch next from cur into @str,@price
end
close cur
deallocate cur
总体思路:对表1各行ID进行拆分,然后分别更新表2的数据

❻ SQL语句应该怎么写

select t.*,a.name as 起点,b.name as 终点 from ticket t inner join city a on t.起点ID=a.id inner join city b on t.终点ID=b.id
where t.起点ID=表单传入的值a and t.终点id=表单传入的值b