查看: 1142| 回复: 5
跳转到指定楼层
上一主题 下一主题
收起左侧

[数学应数] 两道take home SQL题

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
1. write a function to capitalize teh first letter of a word in a given string;. check 1point3acres for more.
Example: inicap(UNITED States of AmERica)=United States of America

2. write a procedure to split columns into rows using a delimiter
schema
Id  Name
_______
1 smith
2 Julio|Jones|Falcons
3 White|snow
...
Row 3 would look like >>"3, White", "3, Snow"


上一篇:回复都加米!2022fall 港中深统计本 中高三维 生统PhD选校求定位!
下一篇:总结的常用pandas operation,新人求加米
🔗
 楼主| dynatang 2021-9-15 14:57:47 | 只看该作者
全局:
我查到的function.1point3acres
# in a function
CREATE FUNCTION [dob].initcap(@String varchar(max))
RETURNS varchar[max( AS). 1point 3 acres
BEGIN   
    SET @string = LOWER(@string)
    DECLARE @i INT
..     SET @i = ASCII('a')
    WHILE @i <= ASCII('z')
    BEGIN
        SET @string = REPLACE( @string, ' ' + CHAR(@i), ' ' + CHAR(@i-32))
        SET @i = @i + 1.1point3acres
    END
    SET @string = CHAR(ASCII(LEFT(@string, 1))-32) + RIGHT(@string, LEN(@string)-1)
    RETURN @string
END
回复

使用道具 举报

🔗
 楼主| dynatang 2021-9-15 14:58:45 | 只看该作者
全局:
我写的procedure
Create procedure splitcolumns()
BEGIN
        SELECT id, Name FROM sometbl.
        CROSS APPLY REPLACE(Name, |,id)
END
感觉有点不够
回复

使用道具 举报

🔗
Leon20202020 2021-9-16 01:03:45 | 只看该作者
全局:
dynatang 发表于 2021-9-14 23:58
我写的procedure ..
Create procedure splitcolumns()
BEGIN
  1. alter procedure splitcolumns
  2. as . 1point 3acres
  3. begin
  4. Declare @id int
  5. Declare @NAME varchar(20)
  6. drop table if exists #temp
  7. select * into #temp from sometbl where 1=0
  8. Declare Cur Cursor For Select id,Name From sometbl  
  9. Open Cur ..
  10. Fetch next From Cur Into @id,@Name ..
  11. While @@fetch_status=0   
  12. Begin
  13.     insert into #temp select @id, value from string_split(@Name,'|')
  14.     Fetch Next From Cur Into @id,@Name
  15. End  
  16. Close Cur  
  17. Deallocate Cur

  18. select id, name from #temp
  19. end    -baidu 1point3acres
复制代码
回复

使用道具 举报

🔗
Leon20202020 2021-9-16 01:24:46 | 只看该作者
全局:
dynatang 发表于 2021-9-14 23:57
我查到的function
# in a function
CREATE FUNCTION [dob].initcap(@String varchar(max))

你这段在你的example里是对的,但是如果在一些数字和字符混合的情况下就会出现乱码,比如'32 das fdas fdfsa',需要判断一下。
回复

使用道具 举报

🔗
 楼主| dynatang 2021-9-16 10:48:24 | 只看该作者
全局:
谢谢指点, 有什么改进办法吗?还有在哪儿可以测试code?谢谢. 1point 3 acres
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表