คำถามติดแท็ก sql

Structured Query Language (SQL) เป็นภาษาสำหรับการสืบค้นฐานข้อมูล คำถามควรมีตัวอย่างรหัสโครงสร้างตารางข้อมูลตัวอย่างและแท็กสำหรับการใช้งาน DBMS (เช่น MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 และอื่น ๆ ) หากคำถามของคุณเกี่ยวข้องกับ DBMS เฉพาะ (ใช้ส่วนขยาย / คุณลักษณะเฉพาะ) ให้ใช้แท็กของ DBMS นั้นแทน คำตอบของคำถามที่ติดแท็กด้วย SQL ควรใช้ SQL มาตรฐาน ISO / IEC

4
จำเป็นต้องปิดและกำจัด SqlDataReader ด้วยตนเองหรือไม่?
ฉันกำลังทำงานกับรหัสเดิมที่นี่และมีหลายกรณีSqlDataReaderที่ไม่เคยปิดหรือกำจัดทิ้ง การเชื่อมต่อถูกปิด แต่ฉันไม่แน่ใจว่าจำเป็นต้องจัดการเครื่องอ่านด้วยตนเองหรือไม่ สิ่งนี้อาจทำให้ประสิทธิภาพการทำงานช้าลงหรือไม่
90 c#  sql  .net  ado.net 

7
T-SQL: วนลูปผ่านอาร์เรย์ของค่าที่รู้จัก
นี่คือสถานการณ์ของฉัน: สมมติว่าฉันมีกระบวนงานที่เก็บไว้ซึ่งฉันจำเป็นต้องเรียกใช้กระบวนงานอื่นที่เก็บไว้ในชุดของรหัสเฉพาะ มีวิธีทำไหม กล่าวคือแทนที่จะต้องทำสิ่งนี้: exec p_MyInnerProcedure 4 exec p_MyInnerProcedure 7 exec p_MyInnerProcedure 12 exec p_MyInnerProcedure 22 exec p_MyInnerProcedure 19 ทำสิ่งนี้: *magic where I specify my list contains 4,7,12,22,19* DECLARE my_cursor CURSOR FAST_FORWARD FOR *magic select* OPEN my_cursor FETCH NEXT FROM my_cursor INTO @MyId WHILE @@FETCH_STATUS = 0 BEGIN exec p_MyInnerProcedure …
90 sql  sql-server  tsql 

5
ส่วนประกอบเวลาแถบ Mysql จากวันที่และเวลา
ฉันจำเป็นต้องทำการเปรียบเทียบวันที่ใน Mysql โดยไม่ต้องคำนึงถึงองค์ประกอบของเวลาเช่นฉันต้องแปลง '2008-11-05 14:30:00' เป็น '2008-11-05' ตอนนี้ฉันกำลังทำสิ่งนี้: SELECT from_days(to_days(my_date)) มีวิธีที่เหมาะสมในการทำเช่นนี้หรือไม่?
90 sql  mysql  datetime 


3
MySQL: เรียงลำดับตามขนาด / ความยาวของฟิลด์
นี่คือโครงสร้างตาราง (เช่นการทดสอบ): ชื่อฟิลด์ ประเภทข้อมูล id บิ๊กอินท์ (20) หัวข้อ วาร์ชาร์ (25) คำอธิบาย ข้อความ คำถามเช่น: SELECT * FROM TEST ORDER BY description DESC; แต่ฉันต้องการสั่งซื้อตามขนาดฟิลด์ / ความยาวของคำอธิบายฟิลด์ ประเภทฟิลด์จะเป็น TEXT หรือ BLOB

5
PostgreSQL uncest () พร้อมหมายเลของค์ประกอบ
เมื่อฉันมีคอลัมน์ที่มีค่าที่แยกจากกันฉันสามารถใช้unnest()ฟังก์ชัน: myTable id | elements ---+------------ 1 |ab,cd,efg,hi 2 |jk,lm,no,pq 3 |rstuv,wxyz select id, unnest(string_to_array(elements, ',')) AS elem from myTable id | elem ---+----- 1 | ab 1 | cd 1 | efg 1 | hi 2 | jk ... ฉันจะใส่หมายเลของค์ประกอบได้อย่างไร ได้แก่ : id | elem | nr ---+------+--- 1 …

10
ดึงข้อมูลความยาวสูงสุดของคอลัมน์ VARCHAR ใน SQL Server
ฉันต้องการค้นหาVARCHARคอลัมน์ที่ยาวที่สุดในคอลัมน์เฉพาะของตาราง SQL Server นี่คือตัวอย่าง: ID = INT IDENTITY DESC = VARCHAR(5000) ID | Desc ---|----- 1 | a 2 | aaa 3 | aa SQL ที่จะส่งคืน 3 คืออะไร? เนื่องจากค่าที่ยาวที่สุดคือ 3 ตัวอักษร?

4
ฟังก์ชันพาร์ติชัน COUNT () เป็นไปได้โดยใช้ DISTINCT
ฉันพยายามเขียนสิ่งต่อไปนี้เพื่อให้ได้จำนวน NumUsers ที่แตกต่างกันออกไปทั้งหมดดังนี้: NumUsers = COUNT(DISTINCT [UserAccountKey]) OVER (PARTITION BY [Mth]) สตูดิโอบริหารดูเหมือนจะไม่ค่อยมีความสุขกับเรื่องนี้ ข้อผิดพลาดจะหายไปเมื่อฉันลบDISTINCTคีย์เวิร์ด แต่จะไม่เป็นการนับเฉพาะ DISTINCTดูเหมือนจะไม่เป็นไปได้ภายในฟังก์ชันพาร์ติชัน ฉันจะหาจำนวนที่แตกต่างได้อย่างไร ฉันใช้วิธีการแบบเดิมๆ เช่นการสืบค้นย่อยที่สัมพันธ์กันหรือไม่ เมื่อพิจารณาเพิ่มเติมอีกเล็กน้อยOVERฟังก์ชั่นเหล่านี้อาจทำงานแตกต่างจาก Oracle ในลักษณะที่ไม่สามารถใช้ในSQL-Serverการคำนวณผลรวมที่กำลังทำงานอยู่ ฉันได้เพิ่มตัวอย่างสดที่นี่ในSQLfiddleซึ่งฉันพยายามใช้ฟังก์ชันพาร์ติชันเพื่อคำนวณผลรวมที่กำลังทำงานอยู่

18
SQL เปรียบเทียบข้อมูลจากสองตาราง
ฉันมี 2 โต๊ะTableAและTableBที่มีรูปแบบเดียวกันของคอลัมน์เช่นตารางทั้งสองTableAและTableBมีคอลัมน์ A B C D E F โดยที่ A และ B เป็นคีย์หลัก วิธีการเขียน SQL เพื่อตรวจสอบว่าถ้าTableAและTableBที่มีคีย์หลักเดียวกันมีค่าเดียวกันในทุกคอลัมน์หรือไม่ หมายความว่าสองตารางนี้มีข้อมูลที่เหมือนกันทุกประการ
90 sql 

6
การสืบค้นย่อยโดยใช้ Exists 1 หรือ Exists *
ฉันเคยเขียนเช็ค EXISTS ของฉันดังนี้: IF EXISTS (SELECT * FROM TABLE WHERE Columns=@Filters) BEGIN UPDATE TABLE SET ColumnsX=ValuesX WHERE Where Columns=@Filters END DBA คนหนึ่งในชีวิตก่อนหน้านี้บอกฉันว่าเมื่อฉันทำEXISTSประโยคให้ใช้SELECT 1แทนSELECT * IF EXISTS (SELECT 1 FROM TABLE WHERE Columns=@Filters) BEGIN UPDATE TABLE SET ColumnsX=ValuesX WHERE Columns=@Filters END สิ่งนี้สร้างความแตกต่างได้จริงหรือ?
89 sql  sql-server  tsql 

6
การคำนวณระยะทางระหว่างสองจุด (ละติจูดลองจิจูด)
ฉันกำลังพยายามคำนวณระยะห่างระหว่างสองตำแหน่งบนแผนที่ ฉันเก็บไว้ในข้อมูลของฉัน: Longitude, Latitude, X POS, Y POS ฉันเคยใช้ตัวอย่างข้อมูลด้านล่างนี้มาก่อน DECLARE @orig_lat DECIMAL DECLARE @orig_lng DECIMAL SET @orig_lat=53.381538 set @orig_lng=-1.463526 SELECT *, 3956 * 2 * ASIN( SQRT( POWER(SIN((@orig_lat - abs(dest.Latitude)) * pi()/180 / 2), 2) + COS(@orig_lng * pi()/180 ) * COS(abs(dest.Latitude) * pi()/180) * POWER(SIN((@orig_lng - dest.Longitude) * pi()/180 …

8
คัดลอกข้อมูลจากคอลัมน์หนึ่งไปยังคอลัมน์อื่น (ซึ่งอยู่ในตารางอื่น)
ฉันต้องการคัดลอกข้อมูลจากคอลัมน์หนึ่งไปยังอีกคอลัมน์ของตารางอื่น ฉันจะทำเช่นนั้นได้อย่างไร? ฉันลองทำสิ่งต่อไปนี้: Update tblindiantime Set CountryName =(Select contacts.BusinessCountry From contacts) แต่มันไม่ได้ผล ฉันต้องการคัดลอกคอลัมน์ "BusinessCountry" ของตารางที่ติดต่อไปยังคอลัมน์ "CountryName" ของตาราง tblindiantime
89 sql 

5
ฉันจะ 'ค้นหาและแทนที่' แบบง่ายๆใน MsSQL ได้อย่างไร?
คำถามค่อนข้างอธิบายตัวเองได้ ฉันต้องการค้นหาและแทนที่ง่ายๆเช่นเดียวกับที่คุณทำในโปรแกรมแก้ไขข้อความบนข้อมูลในคอลัมน์ของฐานข้อมูลของฉัน (ซึ่งก็คือ MsSQL บนเซิร์ฟเวอร์ MS Windows 2003)
89 sql  sql-server 

8
วิธีการเลือกระเบียนเฉพาะโดย SQL
เมื่อฉันดำเนินการ "SELECT * FROM table" ฉันได้ผลลัพธ์ดังนี้: 1 item1 data1 2 item1 data2 3 item2 data3 4 item3 data4 อย่างที่คุณเห็นมีระเบียน dup จาก column2 (รายการ 1 ถูก dupped) แล้วฉันจะได้ผลลัพธ์เช่นนี้ได้อย่างไร: 1 item1 data1 2 item2 data3 3 item3 data4 มีเพียงระเบียนเดียวเท่านั้นที่จะถูกส่งคืนจากการทำซ้ำพร้อมกับระเบียนที่ไม่ซ้ำ
89 sql  database 

10
การวิเคราะห์การใช้ดัชนี PostgreSQL
มีเครื่องมือหรือวิธีการวิเคราะห์ Postgres หรือไม่และควรสร้างดัชนีที่ขาดหายไปและควรลบดัชนีใดที่ไม่ได้ใช้ออกไป ฉันมีประสบการณ์เล็กน้อยในการทำเช่นนี้กับเครื่องมือ "profiler" สำหรับ SQLServer แต่ฉันไม่ทราบว่ามีเครื่องมือที่คล้ายกันที่มาพร้อมกับ Postgres

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.